Skip to main content

Full text of "Commodore Computer Club 31"

See other formats


Mensile - 25 Maggio 1 986 - Anno V - N, 31 - Sped. Abb. Post. GR Il 1/70 - CR -Distr MeFe 


La ri visi® d^gii utenti di sistemi 


ertta P e 


?» ? — r ’ -.^n 


T r 


r 






0 

c 









maxell ur 


li f 



k ( WL 

w r * * 

n 

IC 


j 



m 


1111111111111 

min Fil li 

: i imi 


NUOVA MAXELL UR 

Una cassetta Low Noise a livello Hi-Fi 


C'era una volta la cassetta adatta ad 
un ceno tipo di utilizzo, alla quale 
non si potevano chiedere prestazioni 
superiori. 

Adesso c'è la UR MAXELL che, gra- 
zie alla sua modernissima tecnologia, 
rivoluziona gli standard* della casset- 
ta low noise portandoli a livelli hi- ti . 
UR significa UNI VERSA L RECOR- 
D1NG, cioè adatta ad ogni tipo di re- 
gistratore, dal portatile alla piastra 
ultrasofisiicata, sempre con la certez- 
za di prestazioni eccellenti, 
fi nastro UR offre un aumento in 
MOL (Maximum Output Level) di 


a 



maxell. 

L arte di registrare. 


1 ,5 dB alle basse frequenze e di 2 dB 
alle alte rispetto alla serie UL. 
L’ulteriore abbassamento del rumo- 
re di fondo offre la gamma dinami- 
ca più ampia della categoria: fino a 
77 dB (a 1 Khz), ottenendo cosi un 
suono chiaro e cristallino senza alcu- 
na distorsione. 

L'involucro della UR è costruito con 
un nuovo polistirene di grande resi- 
stenza che ne assicura una lunga vita 
senza problemi. 

A voi non resta che provare; non re- 
sisterete al fascino, neanche troppo 
discreto, della nuova UR MAXELL. 







Vie 20 C 64 C16/128 Generati 


E NON INDURCI 
IN SYNTAX ERROR 

■w 

RUBRICHE 


4 L’ARGOMENTO DEL MESE 


DOMANDE/RISPOSTE 


RECENSIONI 


12 1 RIGA 




18 

€128, impressioni a "caldo M 






34 

Speed dos Formula 1 


* 

• 



84 

Come ti sproteggo il cartridge 

* 






L’utile 






21 

Un piccolo segreto del Ci 28 



* 



40 

Nuovo sistema 

* 

• 

• 

• 


90 

Enciclopedia di routine 

• 

* 

* 

* 



Oltre II basic 






23 

Ordinamento ultraveJoce di un 







vettore 


» 




88 

Aita riscoperta dell'lnterrupt 


■ 





Giochi 






28 

Scassammo 


* 

* 



30 

Magic square 


• 

* 




Didattica 






38 

Discorso 

• 

* 

• 

* 



Periferiche 






100 

Stampare o non stampare 7 
Visualizzare,.. 

* 

* 

* 

* 


104 

Come disegnare con il p lotte r 1 520 

• 

* 

* 

* 



U ^ 




Direttore: Alessandro de Simone 

R ed silo n-e/ce] laboratori: Claudio Baiocchi. Cario e Lorenzo BEuazzetta. Giovanni fW.hj. Simon# 
Bettola Andrea e Alberto Banani, frego e Federico Ca-netla. GiarsearVi Castanga. U'nberto Colapk:- 
duori. Pasquale D'Andrcli, Maunno Odi Ahare. Marco Oe Martino. Piero Deli 'One?. Luca Gbnuzzì 
■V bcheto Maggi, GiancarìtsM ariani. Ma* *® Miotti, Ray-oMol^anXiaj^iohVtótw Enrico Scelga 
D Matturro m L Nrtb Massimo Pofluln, Carla Ramp/, Paino Sorgalo, Giovanni Véndita. Amatilo Visconti 
Sagrale ria di r«t*zk>o»; Maura. CoOMroi», Piera Penn 
Ufficio Grafico: Mary Senvenuio, .Arturo Ciaq’ia. Paoto Vcrtuoccs 
Di rea io ne, redazione, pubblio Uà: V.lé Famagosla. 75- £0142 Milano - Tei 02/6467346 
Pubblicità; Melano: Leandro NenMfuL [duettore véndite). Giorgio Ruffoni. Roberto Sgihirinzetli 
(settore informatica)', CiaisSio Ti<fGrte - V ia FamagosEa, 75 - £0142 Milano - Tei 02/B467348 

* Emilia Romagiria: Sjjazio E - P.zza Roosove), 4 - 40123 Bologna - Tel 061/236979 

* T oscena . Marche, Umbria' Mercurio Srl ■■ via Roda n,9- San Giovanni v&v&mo {A r] ■ T gl QS5/3--V 7444 

* Lazio, Campana Sjpazó Nuovo - via P FOiCan 70 - 00139 Roma ■ Tei. 06/8 1-00679 
Segretaria: Liliana CteQiongi - Abbonamenti; Marina Vanii™ 

Tariffa; prozzo per copia L 3 500. Abbonamento annuo (t T fasctìo'i} L. 35.000 Estero il doppio 
Abbonamento eumgtetrvtì ale riviste Computer c Commodore Computer Club l 7 0 000 
I versamenti vanno indirizza b a Systems, Pedonale Srl mediante assegno banca* io 
p utilizzando il c/c postate n 37952207 

Composizioni: Systems £<i4 oriate Srl - Fotolito: Sysiems EditonaieSn 
Stampa: La l iiograiica S r.1 - Busto Arsilo i VA} 

Ragltlrixlon*: Tributiate ds M;iaran. 370 fól £/T0fe2 - Direttore Responsabile Micheto Dj Fisa 
Spedi, in abb. post. gì. Ili - Pubertà .inferiore al 70% ■ Oistrifc: MePo, vìa G. Cardano 32 - Milano 










Che influenza può avere un calcolatore su 
chi lo usa ? E vero che, a furia di usarlo, si 
diventa aridi e privi di creatività? Ed altre 

dissertazioni... 


omc è ormili consuetudine da qua!- 
che tempo, anche questo mese viene pre- 
sentato su CCC* in forma “speciale*’, un 
argomento di interesse generale. Stavol- 
ta ci occupiamo di come interpretare cor- 


di Alessandro de Sìmonc 

rettamente gli errori da noi commessi in 
fase di stesura di un programma Basic. 

Benché il termine sia sproporzionato 
olle funzioni svolte da un calcolatore in 
fase di “debug”, non è azzardato affer- 


mare che le segnalazioni di errore costi- 
tuiscono un esempio di intelligenza arti- 
ficiale (A.L) 

E 1 ben vero che il messaggio Syntax 
Error, tanto per citare il più banale, non 






è altro che il risultato di un mancato ri- 
scontro con parole chiave (o altro) me- 
morizzate nel computer. Ma allora, vo- 
lendo privare la visualizzazione del mes- 
saggio della caratteristica di "intelli- 
genza", cosa dovrebbero rappresentare i 
segni rossi e blu apposti da un insegnante 
nella correzione di un compito di gram* 
matica, di sintassi o di matematica? 

Fortunatamente, a scuola, il corpo do- 
cente non si limita a segnalare Tenore 
commesso ma (almeno così dovrebbe es- 
sere) aggiunge uno o piu commenti scrit- 
ti, per non parlar poi delle ramanzine 
orali... 

Ma ciò che interessa in questa sede 
non è Io stabilire se un computer può 
pensare o se è soltanto uno "stupido” al 
nostro servizio (fatto che, a mio modesto 
e personale parere, può esser facilmente 
assimilato ad una forma mascherata di 
razzismo o neo-classismo). 

Vogliamo qui individuare, nello stru- 
mento informatico, gli atteggiamenti che 
la mente umana è costretta (o desidera) 
assumere ne devoluzione delta società. 

L’altro ieri 

Tanti anni fa c'era, tra le altre discipli- 
ne scolastiche (che allora si chiamavano, 
brutalmente, "materie”) quella della 
Calligrafia che era tenuta in gran conto 
daiTjntero corpo docente nella valuta- 
zione (ma si diceva, allora, “voti”) dei 
risultati finali. Erano posti in commer- 
cio, addirittura, spedali quaderni con ri- 
ghi strani prestampati, simili a spartiti 
musicati, che facilitavano la “bella scrit- 
tura”; parallelamente fioriva il mercato 
dei pennini, con vari “becchi”, ciascuno 
adatto per specifiche applicazioni. 

Fortunatamente la diffusione della 
penna a sfera prima, e del buon senso 
poi, limitò la proliferazione dell" inchio- 
stro con gran dispiacere delle fabbriche 
di detersivi. Al giorno d'oggi, comun- 
que, poderose masse di impiegati statali 
sono costrette, da apposite leggi (o, più 
semplicemente, da stamia imbecillaggi- 
ne) ad usare la penna invece dei compu- 
ter che sono sospettati, come i comunisti 


degli anni '50, di mangiare i bambini. 

Lasciamo però da parte la mancata 
meccanizzazione delle informazioni e, 
con essa, il conseguente accumulo di pra- 
tiche che, tra un po’ di tempo, richiede- 
ranno gir stadi comunali per esser 
archiviate. 

Ieri 

Ricordo che, iscritto al biennio di in- 
gegneria, chiesi ad un professore se quel- 
la matematica che ero costretto a studia- 
re (limiti, derivate, integrali e compa- 
gnia) sarebbe stata utile per progettare 
un edificio o per determinare il carico 
delTacciaio. L 'interpellato, candida- 
mente, rispose che per far reggere in pie- 
di un edificio, uno stadio gremito o una 
nave stracolma sono sufficienti calcoli 
che richiedono Le moltiplicazioni, le divi- 
sioni e (ma raramente), anche le somme 

le sottrazioni. Di logaritmi, Limiti, deri- 
vate e sciagurati compagni neanche Tom- 
bra, almeno nella più comune pratica 
professionale. 

In seguito, passato al tiennio superio- 
re, e applicandomi nelle esercitazioni 
pratiche (progetto di edifici in cemento 
armato, telai in acciaio e applicazioni del 
precompresso) scoprii che il professore 
di qualche anno addietro aveva perfetta- 
mente ragione: erano sufficienti le quat- 
tro operazioni. 

Ma allora perchè costringere gli stu- 
denti ad affrontare argomenti cosi odiosi 
che suggerivano, molto spesso, il cambio 
del corso di studi? 

La risposta, in verità, mi fu fornita 
dallo stesso insegnante: “Perchè ranalisi 
matematica è V unico strumento che at- 
tualmente abbiamo per conferire una 
tipica forma mentis al futuro ingegnere 
che dovrà barcamenarsi tra situazioni 
sempre nuove e impreviste, mute voli da 
progetto a progetto”, E anche in questo 
aveva perfettamente ragione. 

Oggi 

Ma i tempi son cambiati. Prima degli 


anni 70 i calcolatóri erano ancora una 
chimera e il vecchio CDG 20 (a transi- 
stori) installato presso la facoltà di Inge- 
gneria di Napoli, funzionava un giorno sì 
e tre no, con gran disperazione del giova- 
ne e valido professor Esposito al quale, 
comunque, riconosco il merito del conta- 
gio per la passione dei computer. 

E, oggi, quale strumento "logico” mi- 
gliore, se non un calcolatore, può esser 
proposto a chi vuole esplorare, anche da 
solo, i meandri più nascosti delta razio- 
nalità? Quale miglior stimolo ad appli- 
carsi può esser rappresentato dal puzzle 
di un messaggio di errore i spiegabile? 
Oppure di un risultato decisamente con- 
trario a quello che ci si aspettava? 

Facciamo, tutti, un passo indietro nel 
considerare le nostre prime esperienze 
con un calcolatore. Se qualcosa non fun- 
zionava (ed eran tante, specialmente al- 
l'Inizio) pensavamo subito che il compu- 
ter acquistato era rotto dato che (inevita- 
bile, presuntuosa premessa) noi non po- 
tevamo aver sbaglìato. 

Chi, invece, ha trascorso centinaia di 
ore alla tastiera, ma non per giocare, sa 
benissimo che, in caso di malfunziona- 
menti, la causa principale siamo noi stes- 
si, che non siamo stati capaci di program- 
mare o di trascrivere un listato oppure di 
non aver sistemato alcuni puntatori pri- 
ma di o dopo che. 

Una nuova umiltà, unita ad una buona 
dose di pazienza, caratterizza Tumore 
de 11 '“Homo programma ns'\ Migliora* 
menti nel rendimento scolastico, mag- 
gior capacità di effettuare scelte oculate, 
razionalità, curiosità, desiderio di cono- - 
scenza e rifiuto di comportamenti con* 
traddittori costituiscono il risultato di in- 
tense ore di (piacevole) studio di fronte 
al monitor. Per non parlar, poi, degli 
appassionati di linguaggio macchina. 

E pensare che c’è ancora gente, soste- 
nuta da scellerati tuttologi, che vede il 
computer come una nuova peste da al- 
lontanare con diffidenza. 

Il tutto in un contorno sociale spesso 
irrazionale e contraddittorio che, anzi, 
richiede carenza dì razionalità per 
sopravvivere. 

Commodore Computer Club - 5 





Domande Risposte 

DOHVI4DE }£\2bOZ . .LE 


Scherzi 

Come tulli, o quasi, hanno capito dal- 
la data e dal periodo cui sì riferiva (:car- 
nevale)* il "'Comunicato'' apparso sul 
n unterò scorso era un pesce d’apriic . 

Ma, a proposito di scherzi, siamo co- 
stretti a segnalare che alcuni buontempo- 
ni, non sappiamo se in buona fede oppu- 
re no, si presentano a nostro nome per 
compiere azioni che, superando la bar- 
riera de! buon gusto* cadono nella 
illegalìtà, 

Ci riferiamo agii inviti, da parte di per- 
sone non identificate* a partecipare a 
concorsi inesistenti, al ritiro di articoli e 
programmi con promessa dì pubblicalo- 
ne o dì commercializzazione che mai sii- 
ne da noi state autorizzate. 

Pertanto non solo invitiamo gli autori 
delle "'bravate’' a interrompere tali azio- 
ni ma, nel contempo, consigliamo i nostri 
lettori di diffidare di persone che doves- 
sero presentarsi a nostro nome per ritira- 
re denaro, articoli o programmi. 

In caso di dubbio telefonate (02/ 
8467348) per segnalare sospetti di irrego- 
larità e, nel frattempo, non consegnate 
nulla a nessuno. Tutti i componenti della 
Redazione sono, ovviamente, sempre in- 
formati Sulle varie iniziative promozio- 
nali in corso e , pertanto, sono in grado di 
sciogliere ogni dubbio. 

Pulsante inefficace 

Ho costruito* come da voi suggerito 
sui N,28* il pulsante di Reset, ma non 
funziona. Potete aiutarmi? (Massimo 
Musaccht, Ferrara} 

• Purtroppo, come avevamo specificato 
nello stesso articolo, l'esemplare di C/6 4 


in tuo possesso non è di quelli che con- 
sentono tale applicazione. In questi casi 
è necessario utilizzare la porta utente op- 
pure quella di espansione per '"ricava re’ ' 
il pin dì reset. Se ritieni che la spesa dei 
connettori per tali porte sia eccessiva h 
l'unico modo di aggirare l'ostacolo è 
quello di aprire il computer, rintracciare 
il pin dì Reset sul circuito stampato (me- 
glio se nei pressi delle porte) ed effettau- 
re il collegamento in loco. Attento a non 
creare involontari corti-circuiti col 
saldatore! 

Dove Jo metto? 

□ Ho costruito il pulsante di Reset ma, 
quando collego il drive* devo necessaria- 
mente rimuoverlo. Come pos&u continua- 
re ad utilizzarlo? (Amerigo Santoro < 
Terni) 

m II pulsante di Reset collega a massa il 
pin deU’intero sistema (computer e ac- 
cessori), E' quindi possìbile inserirlo nel- 
la seconda porta seriale de! drive. E se a 
questa è collegata la stampante, inseri- 
scilo nella porta libera di quest 'ultima 
periferica. 

Joy e padelle 

In un gioco in cui è previsto l'uso del 
joystick* è possibile usare le padri k te 
viceversa)? (Mario Crisaiolo, Roma) 

» Un joystick è formato da un gruppo di 
cinque interruttori che, a seconda della 
posizione dell'assicella, vengono chiusi 
oppure aperti e* in tal modo, il computer 
"'riconosce” lo spostamento impresso. 

Il joystick, pertanto, è uno strumento 
del tipo ""tutto o niente" nel senso che un 


interruttore può esser solo aperto oppu- 
re chiuso* c non sono possibili "stati” 
intermedi. 

Le paddle* al contrario, sono resisten- 
ze elettriche variabili che, collegate a 
porte "analogiche"* comunicano al com- 
puter una delle 256 possibili (almeno in 
teoria) posizioni intermedie della 
manopola. 

Pertanto non è possibile la sostituzio- 
ne accennata sia perchè il joy è digitale e 
le paddle sono analogiche, sia perchè le 
paddle sono due c il joy possiede al suo 
interno ben cinque interruttori sia per- 
chè. infine* ì pin di collegamento presen- 
ti nel connettore sono diversi nei due 
casi! 


Mancanza di “Press Play” 

! Da alcuni mesi il mio computer, al 
comando Load e Save, non risponde più 
col solito messaggi» ' "Press. ma esegue 
immediatamente, pur funziona rido be- 
nissimo. Come posso fare per evita re que- 
sto difetto che è davvero seccante in pro- 
grammi che richiedono esplicitamente la 
pressione del tasto Stop del registratore? 
(Giovanni Ripamonti, Lecco) 

* Abbiamo più volte detto che, se il 
computer funziona egualmente nelle va- 
rie fasi (registrazione* verifica, carica- 
mento) il difetto è da attribuirsi ad un 
corto circuito interpretato, dal compu- 
ter, come un costante abbassamento di 
un tasto del registratore. 

Tale corto circuito può essersi verifica- 
to sul computer (caso raro) oppure su! 
registratore (più frequente). 

Per sapere quale dei due casi è il tuo, 
stacca il registratore e digita "Load". Se 
Io schermo "scompare” subito vuol dire 
che in corto è sicuramente la pista del 


6 - Commodore Computer Club 






la 

Superstar 


£ 

/■ 


-T 




V- 





\* 


fra le stampanti 
per computer 
é una Star! 






Probabilmente, nessun altra stampante riunisce in sè tutte 
le straordinarie prerogative delia NL-10 una periferica per 
computer estremamente convincente nelle prestazioni e 
nel prezzo NL-1Q può contare su fans m ogni settore aperto 
all informatica gestionale, organizzativo, amministrativo, svi- 
luppo, produzione, hobby stico Di lei gli addetti ai lavori apprez- 
zano la semplicità d'uso e la qualità delio stampato. E h sorpren- 
dente su NL’10 la quantità di funzioni di stampa, controllabili 
dall utente tramite un pannello frontale molto sofisticato, cosi 
come la varietà dei formati di stampa e la sua enorme adattabi- 
lità a qualsiasi tipo di computer Anche nei l'affidabilità. NL-10 
darà prova di tutta la sua amicizia. Chieda al nostro rivenditore 
di zona una dimostrazione di Superstar NL-10 siamo certi che 
anche Lei concluderà che, con una Star, si può andare molto 
lontano! 



La tua stampante 


y?A 

7!ì 


DlSìkìM ÌOkf PER i 77,1 UA 


[ /„ ILlMJfflìOU., 

i // / 

l // / 


M 


>€-- 

Pùf avere maggiori inkjrrriazjQr e l'indirizzo dei nvencfftore dalla Sua sorta, 
et invìi il coupon allegato 

I Ditte: Via- n 

Nome; Cap„; Citta: 

Tel _ 


Via Gallarai* £11 2Qi5t Milano 
02 '301 00 rà 30100 9-1 r. a 





calcolatore. Se, invece, compare la scrit- 
ta “Press,,/' vuol dire che rincori venien- 
te è da ricercarsi nel registratore, 

I n entrambi i casi è necessaria un po’ di 
pratica sia per individuare il copto circui- 
to sia per eliminarlo. Se è dovuto a cause 
meccaniche, un metodo sbigativo è quel- 
lo di troncare il filo del sensore di tasto 
premuto e di collegato ad un pulsante 
esterno (normalmente aperto) che pre- 
merai quando richiesto. 

Computer parlanti 

□ Posseggo un C/t6 e vorrei supere se 
esistono programmi, come il vostro *’ ‘La 
voce 1 * per C/64, capaci di Tarlo Sparla* 
re” (Franz Comploj, Ortìsei) 

* La sintesi vocale, c altre diavolerie 
elettroniche capaci di simili meraviglie, 
presuppongono l'impiego di sofisticati 
circuiti integrati appositamente realizza- 
ti, IL SID del C'ó4 è attualmente il mi- 
glior sintetizzatore sonoro attualmente 
installato in computer di basso costo. 
Quello montato sul CTó, purtroppo , 
possiede caratteristiche nettamente infe- 
riori e non sarà mai possibile, di conse- 
guenza, far parlare il tuo calcolatore. 

Koala non funzionante 

□ Noti riesco a far funzionare il vostro 
programma ‘'Koala video” pubblicato 
nelTenridopcdia di routine (CCC N,27), 
(Marco Coccia , 5. Teresa di Spallare J 

* Il programma cui ti riferisci consente 
di utilizzare, nei propri listati, disegni 
realizzati in precedenza col sistema 
software - hardware “Koala"* che, tra 
Faltro, funziona solo col drive per dischi 
1541. Purtroppo tu possiedi solo il regi- 
strato re e ri programma non può 
funzionare. 

C/64 a 80 colonne 

G Vi .sono in commercio alcuni program- 


mi per C/64 che consentono di portare Io 
schermo da 40 a 80 colonne. Di che cosa si 
tratta? ( Marco Russo, Siracusa) 

* Si tratta di utility che ricorrono alla 
tecnica della ridefinizione dei caratteri 
per fare in modo che, nello stesso spazio 
di una cella video in cui normalmente 
risiede un solo carattere, ve ne siano due. 
Come puoi immaginare la nitidezza de- 
cade in mòdo impressionante, la possibi- 
lità di gestire ì colori rimane illusoria ed è 
praticamente impossibile riconoscere i 
singoli caratteri su un comune televisore, 
sia pure in B/N. Non dimenticare, inol- 
tre, che programmi professionali (come 
word processor, data base, spreadsheet 
ed altri) non appena vengono caricati 
“cancellano” tale utility e lo schermo ri- 
torna alle consuete 40 colonne: 


Video registra re le schermate 


! E' possibile collegare il videóregistra- 
tote al computer? (Davide Miiìtello, 
Li m diate ) 

• Puoi coliegare il cavetto che normal- 
mente inserisci nella presa del T/V, nel- 
Tapposita presa d’ingresso del videoregi- 
stratore, Tutto qui. 

Caldi comportamenti 

Dopo mezz’ora circa di lavora il mio 
computer 'impazzisce”. A che cosa può 
esser dovuto questa strana comporta- 
mento a "caldo”? ( Claudio Detto Pietra , 
Abano) 

* Abbiamo piu volte affermato che i 
malfunzionamenti che si verificano 
quando il computer si riscalda sono do- 
vuti a saldature “fredde" che, a tempera- 
tura ambiente, consentono il corretto 
passaggio della corrente. Quando il com- 
puter (drive, stampante o altro) si riscal- 
da, le dilatazioni termiche, benché mini- 
me* interrompono o, comunque, altera- 
no il normale flusso di energia. In questi 
casi, se si è esperti, è sufficiente aprire il 


computer e “ripassare” le saldature so- 
spette, Se non si è pratici di saldature è 
meglio inviare l’apparecchio ad un cen- 
tro specializzato in riparazioni di 
computer* 

Sfortunato Plus/4 

G E’ possìbile trovare programmi ge- 
stionali per il Ptu$/4 oppure adattare fa- 
cilmente programmi normalmente in uso 
per il C/64? (numerasi lettori). 

• No 

Fine di un computer 

□ E* vero che la Commodore ha deciso 
di bloccare la produzione del C/64? E, in 
caso affermativo, che danno potremmo 
avere noi, utenti di questo computer? 

# Le voci che si sentono in giro sono di 
vario tipo: Gheddafi proposto per il No- 
bel della pace, Rcagan che trascorre le 
vacanze a Tripoli, Gorbaciov che propo- 
ne il divieto della vendita perfino delle 
armi giocattolo. E’ inevitabile che corra- 
no anche voci di fallimento della Com- 
modore, di fusione della IBM con la Sin- 
clair e di altre deliziose notizie. 

Qualunque sia la salute commerciale 
della Commodore è impensabile, a no- 
stro parere, che un modello di computer* 
simbolo della stessa Commodore, scom- 
paia dopo esser entrato nella leggenda. 
Comunque vadano le cose stà tran- 
quillo; il numero di utenti È troppo alto 
perchè software house, fabbriche di ac- 
cessori e case editrici del settore (tra cui 
noi, in prima fila) smettano dì occuparsi 
dei popolarissimo calcolatore. Pensa che 
ancora oggi, a distanza di anni dal fallito 
esperimento delia Texas, continuano a 
circolare programmi, periferiche e 
software per il modello TI^99 che ebbe 
una diffusione, ed un successo, netta- 
mente inferiori al C/64! 

Banche dati 

G Potete pubblicare ì numeri di telefono 


8 - Commodore Computer Club 



di alcune banche dati operanti in 
Europa? 

♦ Sul N .2 (febb/mar Wi) della nostra ri- 
vista "Personal Computer" è stato af- 
frontato il tema delle modalità di collega- 
mento via modem. Nello stesso articolo 
(Ulisse a [TAF AC) figura anche un elen- 
co. piuttosto ampio, dì banche dati e re- 
lativi numeri di telefono. 


Plus^4) accenna a questa anomalia che 
potrebbe verificarsi e. addirittura, è pre- 
visto un apposito comando (Esc + C) per 
ridurre le dimensioni de IT arca video in 
modo da esser completamente visibile 
anche con televisori che dovessero pre- 
sentare qualche problema. 

Il Vie 20 aveva la possibilità di elimina- 
re il bordo (o meglio, di allargare le di- 
mensioni dell’area destinata alla visualiz- 


zazione dei caratteri) ma tale tecnica non 
è stata utilizzata spesso in programmi po- 
sti in commercio proprio perchè non si 
aveva la garanzia che F acquirente, torna- 
to a casa, potesse utilizzare il programma 
col proprio televisore. 

Se può interessare, un apposito pro- 
gramma per il Vie 20 (Scrittura a tutto 
schermo) che allargava il video a 33 righe 
per 25 colonne è stato pubblicato su CCC 
NI!. 


T ut losche mio 

E * possibile eliminare la cornice del 
video per utilizzare Finterò schermo? 

( A ffons o Perna r M omelìa ) 


* Il bordo del video, presente anche per 
una questione estetica, consente di adat- 
tare qualsiasi esemplare dì computer 
prodotto a qualsiasi televisore esistente. 

In assenza del bordo* infatti, alcune 
colonne o righe di caratteri potrebbero 
non comparire su certi esemplari di TV 
con le conseguenze che è facile immagi- 
nare, Il manuale di istruzioni dclCrth (e 


AVVERTENZA 

IMPORTANTE 


Tra le numerose domande che pervengono in Redazione, vengono 
scelte in prevalenza quelle di interesse generale r rinviando . spesso 
si ne die , la pubblicazione di quelle ritenute meno interessanti oppure 
già affrontate dì recente su Commodore Computer Club . 

invitiamo pertanto i lettori, specie se principianti f a sfogliare con 
attenzione le pagine della nostra rivista e a leggere articoli che , pur se 
apparentemente non lì interessano, contengono purtuttavia preziose 
informazioni su istruzioni particolari (POKE, PEEK f S YS ed altre) o 
tecniche insolite dì progni m ma zione , registrazione di dati, programmi 
eccetera . 



A,RE. - VIA DANTE, 8-34170 GORIZIA 

• TUTTO IN ITALIANO 

• 98 PAGINE VIDEO 

• GRAFICA E TESTO A COLORI 
« ARCHIVIO ALLIEVI 

• MESSAGGI SONORI E GRAFICI 

• CONTROLLI DI COERENZA 

• GIÀ DISPONIBILI UNITA 1 DIDATTICHE 



'■-T-r-' 


I 


SISTEMA 

AUTORE 



COOP. A.P.E. VIA DANTE, 8 * 34170 GORIZIA 

TEL (0481 } 341 69 





RECENSIONI 


C 64 - C 16 


Zoids 



uesto nuovo gioco delta Mastertro- 
mes presentii alcune simpatiche novità. 
Innanzitutto una musica di sottofondo, 
ed una schermata visuali //aia in perma- 
nenza* accompagnano l'intero carica- 
mento del gioco che si compie dopo 42 
gin di nastro. 

Quando il gioco inizia* la parte centra- 
le del video viene occupata dallo scher- 
mo radar, in alta risoluzione, incaricato 
di \i sua lizzare la posizione della nostra 
navicella àll’in terno di un labirinto. I 
ovvio che la trama del gioco (combatti- 
menti contro r soliti "cattivi 1 ) è solo una 
scusa per mettere alla prova la nostra 
abilità nel manovrare il joystick e. final- 
mente, anche 9u nostra intelligenza, fcf 
infatti indispensabde, servendosi del jo\ . 
non solo governare correttamente il mo- 
vimento dell’astronave ma, soprattutto, 
rintracciare e ricomporre i numerosi pez- 
zi di un oggetto precedentemente espio 
so, prima che se m impossessino i 
ne mici. 

Per raggiungere In scopo sono costan- 
temente presenti sullo schermii, oltre al 
radar che consente perfino di zoomare la 
nostra posizione, altre otto "icone"' (por- 
zioni di schermo in alta risoluzione), 
Queste, toccate dal joy, forniscono varie 


informazioni oppure, a seconda dei casi, 
eseguono comandi opportuni per ciò che 
riguarda combattimenti, tempeste, at- 
tacchi nemici, esplorazioni di città o atti- 
vazione di scudi. 

Due forme d'onda* rappresentanti tu 


pulsazione del nostro cuore e quella /.oid 
(che si riferisce ai danni subiti) completa- 
no le informazioni necessarie a condurre 
con successo il gioco che rappresenta un 
felice compromesso tra un classico game 
d azione e il genere "ad venture" 


Game Killer 

uesla carmcci;! della Masierlromc 
rappresenta senz'altro una novità nel 
campo dei videogiochi. 

Inserita, a computer spento, sul retro 
del ( 'h4, consente di caricare, da nastro 
oppure disco, un qualsiasi vidcogioco e 
dì giocarlo come a! solito con un unica 
sostanziale differenza: é possibile elimi- 
nare il riconoscimento delle collisioni 
sprite-sprite, quelle sprite-caraiieri op- 
pure qualsiasi collisione. 

Il vantaggio di un tale provvedimento 
e evidente: poiché la maggior parte dei 
giochi uiiliz/a la collisione degli sprìte 
per incrementare le penalità, m questo 
modo il gioco non 'si accorge deiravve- 
nuta collisione e il numero di "vile ria- 
mane sempre lo stesso ? 

I" ovviamente possibile ripristinare le 
condizióni normali del gioco in qualsiasi 


momento premendo il tasto incorporalo 
nella cartuccia. 

Game Killer risulta utilissimo per ve- 
dere. finalmente, le schermate mai gio- 
cate di videogiochi quasi impossibili. Do- 
po aver effettuato alcune prove, ci sem- 
bra però doveroso precisare che non in 
lutti i v ideogiochi la cartuccia ha 
funzionato. 

In alcuni game, inoltre, dato che viene 
disabituato il riconoscimento di qualsiasi 
collisione, è necessario ricorrere spessir 
alla continua abilitazione e disabilita/io- 
nc della cartuccia in modo da continuare 
a "vivere 1 quando tl nemico ci colpisce e, 
al contrario, di mani! catare h nostra pre- 
senza nei casi in cui è necessario "tocca- 
re 1 ' particolari oggetti oppure colpire il 
nemico Gprite) con nostre bombe e 
proiettili (ancora spole I per totalizzare 
punteggi a nostro vantaggio. 



10 - Commodore Computer Club 




RECENSIONI 


Commodore 64 


Phantom 
of thè asteroids 

U ii ennesimo £iivi> in cui è necessario 
colpire i nemici evitando di esser toccati 
a di entrare in collisione con raggi lasero 
spigoli del labirinto Simpatica là musi- 
chetta di accompagnamento e abbastan- 
za realistico il movimento dell'omino 
quando si solleva grazie al reattore del 
suo zaino. 

Ideale per chi non è ancora stanco dei 
classici videogame che richiedono molta 
destrezza ed abilità nel manovrare il joy- 
stick 




C/16 Winter Olympics 


vevamo affermato, tempo fa. che un 
videogioco per C/16 non avrebbe mai 
potuto competere con analoghi videoga- 
me per 064 perchè quest ultimo è dota- 
to di aprite dalle possibilità 
impareggiabili. 

Questo nuovo gioco della Mastertro- 
mc, invece» ci smentisce e ne siamo felici. 

In effetti non è altro che una copia più 
o meno fedele del popolarissimo Winter 
Games (per C/M) dotato di un'anima- 
zione che sicuramente sfrutta al massimo 
le capacità grafiche del piccolo 
computer. 

Vi sono ben sei tipi di gare da caricare 


una alla volta. 

Specd Skating, che è una gara di velocità 
sui pattini contro li computer; Ski dump, 
classica gara di salto dal trampolino; Cre- 
sta Run. simulazione piuttosto realistica 
della nota competizione su Bob; Ski Sla- 
lom, che non necessita di spiegazioni; 
Curling, gara di howiig su ghiaccio; 
Down Hill, simile allo Slalom ma gli og- 
getti da evitare sono gli alberi c non le 
bandierine. 

Huona la grafica, specie se si dispone 
di un TV color, e soddisfacente Tanima- 
rione che sembra quasi realizzata, come 
dicevamo prima, ricorrendo alla tecnica 
degli sprite. 


Commodore Computer Club - ) ì 












Su ogni numero di Commodore 
Computer Club compaiono un 
paio di pagine dedicate a una 
dozzina di micro programmi 
lunghi una sola riga. 

É’ ovvio che non è possibile 
pretendere effetti sorprendenti 
in listati cosi brevi, tuttavia, svi- 
luppando t'idea su cui gli stessi 
programmi son basati è possi- 
bile pervenire a realizzazioni di 
tutto rispetto ricorrendo, è inu- 
tile dirlo, a qualche riga in piu. 

Particolarmente interessanti 
per i principianti, spesso utili 
anche per gli esperti, i micro 
programmi dì una sola riga rap- 
presentano una valida "pale- 
stra 1 ’ per abituarsi a concentra- 
re in poche, essenziali istruzio- 
ni la soluzione di problemi 
complessi soìo in apparenza. 






'i. - 4' 










Avvertenza: 


Come specificato altrove (nel riquadro di 
queste pagi ne) > alcune righe occupano 
più di SO caratteri. Nulla vieta, salvo ra- 
rissime eccezioni, di digitare gli stessi co- 
mandi in due o più righe Basic numerate 
in successione. Eviterete, in Lai modo, dì 
ricorrere alle abbreviazioni e dì modifica- 
re con maggior facilità i comandi even- 
tualmente digitati in modo errato. 



Listati per li solo C/128 


# i 


Errori. Tutti i messaggi dì errore del C' 
128 verranno visualizzati grazie a questa 
riga. 

1 F0RI-1TD41; 

PRINTERREC I 3 : NEXT 


#2 


Typewrìter. 13 vostro computer trasfor- 
mato in una macchina da scrìvere con 
tanto di campanellino per ogni tasto 
premuto, 

1 PRINTCHRS 1 164 3CHR$ 

C 1573 ; : GETKEYAS; 
PRINTCHR$C73r=t$; :GDT01 


# 3 


G064 con SYS,. Lo sapevate che esiste un 
altro modo per passare, da C y ì28. in mo- 
do 064? Eccolo: 

1 SYS6S357 


#4 


Ridefinizione Help. Anche il tasto HELP 


può essere indefinito: provare per 
credere... 

1 DATA 71,73,54,58 
, 13: FOR T-0 TO 4: 
READ A : POKE 4168+ 

T , A : NEXT 


#5 


Disegni musicali. Un disegno accompa- 
gnato da] campanellino ottenuto sia con 
CHR$(7) che con Control * l G'\ 

1 GRAPHIC1 » 1 : 

FORI ^1TD100STEP5 : 

boxi , 70, i00,aae 3 60 , i 

: PRINTCHRÌC73 : NEXT : 
GETKEYAS: GRAPHICS 


# 6 

Reset. La SYS di reset del (7128 (usatelo 
anche per il BOOT). 

1 TEMS-65341: SYSTEMS 


Per C/64 e C/ 128 


# 7 


Riempiscile rimi Basic 64/128. Una riga 
per riempire lo schermo con un 
carattere. 

1 CLR : 

FDHI-10£4TCie023: 

POKE I , 65: NEXT 


# 8 


RiempÉsehermo L.M. 64/128. Lo stesso 
programma di prima scritto, però in Lin- 
guaggio Macchina. Visto che velocità? 


1 DATA 163,65, 162,0 
, 157,0,4,157,0,5, 
157,0,6,157,535,6 
,535,500,241 ,3B:F 
□R I-B135 TO 8511 
: READ A: POKE I , A: 
NEXT : SYSB192 


Per C/16 e C/12* 


# 9 


PRINT Monitor, Una carenza de IT utility 
(incorporata) * Monitor” del C/128 e del 
C/16 è quella di non avere il comando 
Print per stampante. Ovviamo airincon- 
veniente con questo microlistato. Una 
volta dato il RUN qualsiasi comando im- 
partito provocherà la stampa su carta 
(cs. D 080(1). 

1 0PEN4, 4; CHD4: MONITOR 


Trucchi e trinchetti per C/64 

Un gruppo di “una riga' 1 e consigli vari 
per effetti insoliti. Listati c Poke tutti da 
provare e utilizzare nei propri program- 
mi, magari per sperimentare nuove for- 
me di protezione.. . 


#10 


LIST senza numeri. Qualsiasi vostro li- 
stato apparirà, ma senza i numeri dì 
linea. 

1 POKE £2,35:1151 


# li 


Velocità cursore. La locazione 56325 
contiene la velocità del cursore: modifi- 
candola si ottengono interessanti effetti. 

1 INPUT "(N0RM-48D 


Commodore Computer Club ■ 13 


VELOCITA ’ Cl-ESS) 
*’;U;POKE SB325.U 


# 12 

Typewriter, il vostro C'64 non accetterà 
alcun comando grazie alla semplice mo- 
difica della locazione 120. 

1 PQKE 150,0 


# 13 


# 15 

Reset colori. Come tutti (!) sanno, il co- 
mando SYS 64738 reietta il computer 
inizializzando anche i colori; tramite 
questa riga potrete resecarlo ugualmen- 
te, mantenendo nel contempo i colori 
precedentemente settati, 

1 POKE 53580, 1 ; POKE 
53581,1: SYS 647B7 


Michele Maggi 


Due suggerimenti 
dì Mario Cri scucio - Roma 

Autorepeat tasti* Con Poke 650,128 si 
abilita j| Repeat automatico per tutti i 
tasti 

Recupero programma* Con questo grup- 
po di comandi, da digitare dopo un invo- 
lontario NEW oppure un’accidentale 
pressione del tasto di Reset (se io posse- 
dete }, si recupera il vecchio programma. 
Attenzione: ù necessario digitare i co- 
mandi su una sola riga SENZA farli pre- 
cedere del numero di riga Basic. 

POKE2050,!: SYS42291: 

PO KE45*PEEK(34 ) : 

POKE46, PEEK(35);CLR 


LIST di*,- numeri. Verranno listati solo i 

numeri di linea, A che cosa può servire 1 
Decidetelo voi! 

I POKE 774,0 


# 14 

Reverse Poke. Un altro modo per ottene- 
re scritte in reverse. 

1 POKE 199 , 1 : PRINT” 
HDDO REUERSE ATTI 
UATO ! ! " 



Nota Bene 

Alcune righe tra quelle pubblicate sembrano possedere più di 80 caratteri e, come tali, inaccettabili dal computer. 

Nei casi in cut ci si accorga che la riga è troppo lunga, è necessario ricorrere alle abbreviazioni dei comandi cosi come indicato 
nell'appendice specifica riportata nel manuale del computer in vostro possesso. 

Ad esempio invece di scrivere FRINÌ è possibile abbreviare col punto interrogativo (?). Invece di POKE potete scrivere il 
carattere ,l P’ f seguito dal carattere che viene visualizzato premendo contemporaneamente il tasto shift insieme con 'O Tutte le 
abbreviazioni possibili, io ripetiamo, sono riportate in una delle appendici di qualsiasi manuale Commodore. 

Nel caso sbagliate a digitare i mie roti stati che superano, in lunghezza, gli ottanta caratteri (SYNTAX ERROR o altri tipi d; 
erore), è necessario, per Sicurezza, ribatterli per interne non apportare modifiche alla riga visualizzata con l'istruzione LIST 

r 

La partecipazione dei lettori è gradita e compensata, in caso di pubblicazione, con materiate della 
Systems editoriale (libri, fascicoli arretrati, abbonamenti, eccetera). 

Inviate le vostre 1 RIGA, purché nella misura di almeno dieci per volta. Non cr è infatti possibile 
raggruppare i (moltissimi) micro- program mi che pervengono singolarmente in Redazione. 

Inviate i vostri lavori su carta, (meglio se su nastro) corredati, ciascuno, dì una breve spiegazione sulla 
funzione che compiono, proprio come li vedete pubblicati in queste pagine* 

Ricordate dì indicare chiaramente nome, cognome, via e città, e indirizzate a: 

Commodore Computer Club . Viale Famagosta, 75 

SYSTEMS EDITORIALE Rubrica 'lRiga 20142 MILANO 


14 -Commodore Computer Qui? 




COME METTERE 


D’ACCORDO 


UN DO 


Vuoi sapere di più sulle tastiere elettroniche Antonelli? 

| Compilo e spedisci questo coupon a: ANTONELLI 
Viti Filollrano - 60027 Osino (AN) Riceverai un completo catalogo. 

I NOME COGNOME 

VIA . N" 

CAP. CITTA' 


1 



Antonelli 


MUSICA E CREATIVITÀ, DA SEMPRE 



No, non è fantascienza. 
Stiamo solo parlando 
delle fantastiche tastie- 
re elettroniche Antonelli. 
Una novità che ti per- 
mette di dialogare con 
l'interfaccia dì un com- 
puter per comporre, me- 
morizzare e riascoltare 
tutta la musica che vuoi. 
E questo è solo t'inizio. 
Le tastiere elettroniche 
Antonelli sono una vera 
orchestra con tantissimi 
strumenti e voci diverse, 
possono essere col lega- 
te a impianti hi-fi per ot- 
tenere una fedeltà e una 
potenza di suono mai 
viste. In più sono facili 
da usare e belle da mo- 
strare agli amici. Il prez- 
zo? Questo sì è da fan- 
tascienza: da L. 250.000 
(IVA esclusa). 


? II 

|! 

t 





* 

I PF i 


■ + r 




B 

=■ 

-“■o 

1 


L 

I F 

= 1 

[ 'W 

> 

~ 

1- 

1 ,fc 

Kr 

LC 

* 

1 'ÌMé 


■ * ' 

5 

B sCN 


E r ■ P— 

a 

. i 

•-r 

*- 

i_ì 








« 



Uso di alcune Poke per C 164 di Giovanni Chiappe * Imperia 

Ecco una simpatica tabella da sperimentare ed utilizzare in più occasioni: 

□□manda 

Effetto 

Ripristino 

Poke 775,200 

Inibisce 
comando List 

Poke 775, 1B7 

Poke 908,239 

Disabilita 
tasto Run/Stap 

Poke 808,237 

Poke 800,225 

Disabil, List 
Run/Stap e Rest» 

Poke 008,237 

Poke 649 , 0 

Disabilita 
la tastiera 

Poke 649,10 

Poke 818 , 32 

Disab. comandi 

Save e Load 

Poke 810,237 





ASSISTENZA HARDWARE 

(8.30-12, 15-18.30; sabato 9-12) 

V. FRA CRISTOFORO, 2 - 20142 MILANO - (02) 8434368 





riparazione 

microcomputer 













la periferica insostituibile 
per il tuo computer 


PAIO è il nuovo, rivoluzionario Programma Autodidattico Interattivo Computerizzato presentato dalla 
CO.PE.CCX che fa di te un vero programmatore. Per analogia potremmo dire che non ci limitiamo ad inse- 
gnarti una iingua/linguaggio ma ti prepariamo come un interprete/progxammatore. 

L’originalità del metodo consiste ne lHnter attività allievo-macchina, che unisce alla validità didattica una 
forte carica di partecipazione. Seguendoci potrai renderti subito conto delle innovazioni PAIC, della possi- 
bilità di "sfogliare” il video (avanti e indietro) come un libro: un video-libro dal dialogo continuo, stimolan- 
te che insegna a creare piacevolmente fin dairinizio. 

Benché il nostro metodo sia definito "autodidattico”, in ogni caso Tlstituto CQ.PE.CO mette a tua disposi- 
zione per 24 mesi (ben oltre la durata del Corso PAIO) un servizio di assistenza didattica e consulenza di 
esperti che ti seguiranno a distanza. 

Pensaci, c 3 è nessun altro che ti offra tanto?!? 


Ecco perchè PAIO è NUOVO, RIVOLUZIONARIO, FACILE: 

- È BASIC ma non è solo linguaggio 

- È un video da sfogliare 

- Ti porta dalla pratica alla teoria, dalla teoria all’azione 

- In qualsiasi momento la nostra Scuola è pronta ad assisterti 

- Ti rende protagonista nel mondo della scuola e del lavoro 

- PAIC un prodotto, un'idea, un servizio CO.PE.CO, 

Ti verrà dato in dotazione un COMMODORE 64 o mi PLUS completo, se già noti Jo possiedi. 



CQ.PE.CO. - Via Torino, I - 35030 TENGANOLA (PD) 
SÌ, desidero ricevere a casa GRATIS E SENZA IMPEGNO 


informazioni sul corso PAIC. 

COGNOME 

NOME 

VIA 

LOCALITÀ 

C.A.P._ PROV. TEL. ETÀ 

PROFESSIONE 




HARDWARE 

COMMODORE 128 


C 128 , impressioni 

a “caldo” 


Un breve articolo utile a chi è intenzionato ad 
acquistare il nuovo modello della 

Commodore. 


di Claudio Baiocchi 



L e precedenti esperienze dell’autore 
sono relative al Vie 20 ed al Plus/4, Ven- 
gono illustrate le pome impressioni {fa- 
vorevoli c sfavorevoli) sul nuovo compu- 
ter appena acquistato. 

La tastiera 

Il C/128 ha un aspetto decisamente più 
"professionale” rispetto ai modelli infe- 
riori. A ciò contribuiscono sia il tastieri- 
no numerico sia i numerosi tasti di colore 
grigio posti in alto, suddivisi in quattro 
blocchi di quattro ciascuno.. Quelli del- 


l’ultimo blocco svolgono funzioni diverse 
a seconda se sono premuti da soli o insie- 
me col tasto Shift, 

Il gruppo più a destra sostituisce \ tasti 
F1..F8 già presemi su tutti i modelli in- 
feriori. La novità, rispetto al Vie 20 e al 
C-64, è costituita dal fatto che la loro 
programmabilità è immediata, grazie al 
comando KEY già esistente, del resto, su 
C-16 e Flus/4. 

I quattro tasti dei blocco successivo, 
(procedendo da destra verso sinistra) so- 
no un duplicato dei tasti di movimento 
del cursore e si rivelano comodi rispetto 
ai due soli tasti (da premere con o senza 


Shift) presenti nel C-64 e Vie 20. La loro 
posizione, però, non è delle più accessi- 
bili ma, si sa, è solo questione di abitudi- 
ne. Questi tasti, così come gli altri otto 
che descriveremo, e quelli del tastierino 
numerico, sono disattivati quando si la- 
vora nel “C-64 mode” (che d’ora in poi 
chiameremo, più sbrigativamente, "mo- 
do 64”). 

Segue un tasto “No Scroll”: premen- 
dolo durante lo scrolìing di un listato 
oppure l’output di dati sullo schermo, la 
visualizzazione si arresta. Premendolo 
ancora l'output riprende con un effetto 
analogo a quello che si ottiene premendo 


18 - Commodore Computer Club 




HARDWARE 


contemporaneamente i tasti Control e 
"S": questa possibilità era già presente 
sul Plus/4, Volendo, invece, limitarsi a 
rallentare lo scrolling, basta tenere pre- 
muto il tasto Cbm* il prime» basso a sini- 
stra, proprio come avveniva su C-16 e 
Plus/4, Dovrebbe esser noto che sul vie 
20 e sul C-64 è il tasto Control che svolge 
quest'ultimo ruolo. 

13 tasto successiva è, come quello di 
Shift- Look, un tasto che. attivabile solo 
in modo 128, resta inserito dopo la pres- 
sione: se abbassato, determina l'output 
su video a 80 colonne ma non è utilizzabi- 
le con un normale televisore: occorre la- 
vorare con un monitor. 

Segue il tasto Line-Fecd, utilizzabile 
solo in modo CP/M, mentre il quarto 
tasto del blocco è quello di Help: tale 
comando, già implementato nel Basic 
del C-Ih e del Plus/4, è utilissimo in fase 
di debugging. Riservargli un tasto può 
sembrare eccessivo, dato che basta digi- 
tare “H'‘ seguita da Shift + "E" c dal 
tasto Return per ottenere Io stesso effet- 
to, ma su tale punto torneremo più 
avanti, 

Segue il tasto Caps-Lòck* simile allo 
Shift Look dato che viene disinserito dal- 
la successiva pressione, ma comunque 
non un doppione. Agisce, infatti, solo 
sulle lettere, e non sulla prima riga della 
tastiera (numeri e simboli sovrastanti), 
Segue il tasto Alt di cui il manuale dà una 
descrizione assolutamente inutilizzabile: 
apparentemente dovrebbe servire a l 'n- 
defmire" la tastiera ma. come avveniva 
per i tasti FL..F8 sul Vie 20 e C-64, non 
c'è il minimo accenno al suo uso. 

11 penultimo tasto è Tab: premendolo* 
il cursore si sposta alla posizione della 
tabulazione successiva. Anche qui il ma 
nuale accenna alla possibilità di fissare 
autonomamente le tabulazioni, ma non 
dice come fare. I tasti Tab e Alt dovreb- 
bero* comunque* esser utilizzati , più che 
altro, in modo CP/M, 

LVtimo tasto è FEscape che non co- 
stituisce una novità per utenti di 016 e 
Plus/4 * salvo che per la posizione che 
occupa. Raccontare ai possessori di Vie 
20 o C -64 tutte le interessantissime possi- 


bilità offerte da questo tasto è impossibi- 
le per mancanza di spazio. 

Sul tastierino numerico c e poco da 
dire: oltre alle cifre* contiene anche il 
punto (cioè la virgola) decimale, ì tasti 
" F h c “ — ”, ed un tasto Enter che fun- 
ziona come il Return. Da notare che 
l’Enter ed il tasto dello zero sono di di- 
mensioni doppie rispetto agli altri, 

E con ciò abbiamo finito il giro dei tasti 
“nuovi 1 *. 

Sui tasti ^vecchi'** oltre al fatto già 
segnalato, concernente il rallentamento 
dello scrolting (premere Cbm anziché 
Control) c'è poco da dire: rispetto a C-16 
e Plus/4 Mino scomparsi i tasti di Flash -on 
e Flash-Off e. ovviamente, le comode 
funzioni associate. Altri tasti hanno ri- 
preso la posizione che avevano su Vie 20 
c C-64* come quelli dì elevamento a po- 
tenza c dì freccia a sinistra; è infine riap- 
parso il tasto di Restorc che, premuto 
insieme con Run/stop, è un'alternativa al 
pulsante di reset; alternativa talora più 
comoda* dato che il pulsante di reset, se 
premuto da solo, ha lo stesso effetto che 
spegnere e riaccendere il Computer; se è 
invece premuto insieme col tasto Run / 
stop non annulla li programma in memo- 
ria* ma porta in ambiente ''Monitor" e.., 
maltratta il puntatore allo stack: tornati 
al Basic (con X seguito da Return) è 
prudente fare un CLR, 

Concludiamo la panoramica della ta- 
stiera proprio col tasto Run/Stop: come 
già sul C-16 e sul Plus/4, se viene premu- 
to con lo Shift* provoca il caricamento e 
il successivo lancio (Run) del primo pro- 
gramma presente su disco anziché su na- 
stro. come per il Vie 20 ed il C-64, Natu- 
ralmente la variante è effettiva solo nel 
modo 128. 

Si tratta* comunque, di una comodità 
pericolosa; se vogliamo, ad esempio* fer- 
ri! are un listing ed il dito che preme Run/ 
stop tocca anche il tasto Shift, oppure lo 
Shifi-Lock (che sono vicinissimi), si ri- 
schia di perdere il programma in memo- 
ria, Anche se si fa in tempo a premere 
ancora Run/Stop (da solo!) per evitare il 
caricamento del programma, non si può 
comunque evitare il successivo Run "in- 


corporato " nel tasto* che farà quindi per- 
dere tutti i dati elaborati prima dell'in- 
fortunio. La situazione è comunque leg- 
germente migliorata rispetto a C-16 e 
Plus/4, dove anche il tasto Cbm, unito a 
Run/*Stop, aveva Io stesso effetto. Si noti 
che precauzioni quali togliere il disco dal 
drive oppure tenerlo spento, pongono 
rimedio al primo guaio (non si perde il 
programma in memoria) ma non al se- 
condo: eventuali dati già elaborali saran- 
no comunque distrutti dal Run. Un truc- 
co che permette di evitare tali rischi sarà 
indicato tra poco. 

Il Basic 

Terminato l'esame sommario della ta- 
stiera diamo un'occhiata, ancora più 
frettolosa* al Basic, 

L'elenco delle parole riservate è im- 
pressionante: ben 171 elementi, anche se 
alcuni (Off e Ouit) sono seguiti da un 
asterisco ad indicare che non sono in 
realtà implementati. 

Altri comandi sono un,., falso in atto 
pubblico, almeno se le cose funzionano 
come sui modelli precedenti: ad esempio 
Gel # non è un vero comando (è codifi- 
cato con i due tolteti separati di Get c di 
#); idem dicasi di GetKey* che può 
essere abbreviato spezzando le abbrevia- 
zioni di Get e di Key. Ciononostante il 
panorama si presenta interessante: pa- 
recchi comandi relativi alla gestione del 
drive, riconoscibili dalllni/iate "D" (ol- 
tre a Dload, Dsave, DS, DS$. Directory 
già presenti su C-16 e Plus/4), troviamo 
Dclear* Dolose, Dopcn, Dsave, Dverify. 
C’è anche un Catalog equivalente a Di- 
rectory* ed inoltre Append, Collect, 
Concai* Copy* Header, Record, Rena- 
rne* Scratch, che permettono di ottene- 
re, con sintassi elementare, risultati co- 
munque ottenibili sul Vie 20 e C-64. an- 
che se con complicate operazioni attra- 
verso il canale 15 del drive 

Vi sono anche comandi decisamente 
nuovi quali Bload, Root* Bsave, e Run 
seguito dal nome di un programma. 

Molto ampliata, anche rispetto a C-16 
e Plus/4 dove comunque era già vasta, è 


Commodoro Computer Club -19 


HARDWARE 



la gamma dei comandi dedicati al suono 
e alla grafica. Pur non avendo avuto il 
tempo di sperimentare tutti i nuovi co- 
mandi, non ho saputo resistere alla ten- 
tazione di sperimentarne alcuni associati 
alla gestione degli sprite. Ho provato una 
certa delusione nel constatare Che i co- 
mandi Rump e Collision sono scarsa- 
mente utilizzabili dato che non serve a 
nulla scoprire rapidamente che una colli- 
sione è avvenuta, se poi si prendono le 
decisioni conseguenti con la lentezza 
cronica del Basic, Entusiasmo suscita, 
invece, la facilità con cui si possono defi- 
nire, modificare cd animare gli sprite; in 
particolare lo “Sprdef-Mode” è 
fantastico... 

Da un punto di vista meno ludico, è 
apprezzabile la presenza di comandi 
strutturati come Begim„Bend all'inter- 
no di una IP' o di una Else (oltre ai vari 
DO, Loop, While, Unti! già presenti su 
C-16 e Plus/4); comandi quali Feudi, 
Bank, Pointer, Stash, Swap (oltre ad un 
MONITOR più ampio di quello di C-I6 
e Plus/4) saranno certo molto apprezzati 
dagli “smanettoni" e il fatto che la de- 
scrizione del manuale sia molto scarna 
sarà per essi una sfida. . . 

Interessante è infine la presenza del 
comando Fast {annullato da Slow) che, 
oscurando lo schermo c risparmiando di 
conseguenza il tempo dedicato alla sua 
gestione, porta ad un sensibile aumento 
della velocità di esecuzione. Da test ef- 
fettuati su cicli For...Next sembra che la 
velocità doppia cui procede il clock corri- 
sponda effettivamente ad una velocità 
quasi doppia di esecuzione del Basic. T a- 
le risultato era ottenibile anche su C-16 e 
Plus/4, ma a prezzo di complicate mano- 
vre di Poke. 

Notiamo ancora la possibilità di lettu- 
ra diretta di joystick, paddle c penna 
luminosa (senza necessità di PEEK-are 
qua e là) e la presenza di comandi dì 
aiuto alla stesura cd al debugging dei 
programmi, del resto già presenti su C-16 
e Plus/4. Citiamo solo Àuto, Delete, Re- 
number, Help, Tron, Troff, Trap, 
Resumé. 

Apprezzata è la presenza (finalmen- 
te!) deiroperatore XOR (cioè un Or es- 


clusivo) e la possibilità di output format- 
tati grazie a Using e Pudef. 

Chiudiamo questa breve carrellata sul 
Basic con una avvertenza: purtroppo nu- 
merose abbreviazioni cui gli incalliti 
utenti Commodore erano abituati, sono 
da abbandonare: “P" seguita da Shift + 
E non abbrevia piu PEEK, bensì PEN; P 
seguita da Shift + O sta per FOT e non 
per POKE e così via. E’ una scelta in- 
comprensibile, che i progettisti della 
Commodore avrebbero potuto evitare 
con un minimo sforzo. Altro imbarazzo 
potrebbe creare la nuova sintassi della 
funzione FRE, associata alla ripartizione 
a priori della RAM in una zona- 
programma (FRE(0) informa sulla me- 
moria resìdua per la scrittura di nuove 
linee Basic) e in una zona^- va riabili 
(FRE(l) fornisce lo spazio a disposizione 
per nuove variabili). 

Questa rapida carrellata volge ormai 
a! termine e la concludo con un trucco da 
PEEK -POKE -maniaco: per evitare i 
guai descritti, relativi al tasto Run/Stop, 
impariamo a disattivarlo eseguendo: 

FOR X =4159 TO 4167; 
PQKEX,32:NEXT 

In realtà si può fare di meglio: invece 
di disattivare il tasto, possiamo ripro- 


grammarlo. In modo analogo possiamo 
ri programmare addirittura il tasto 
HELP. In altre parole; gli 8 tasti funzio- 
nali sono in realtà IO..., 

Benché l'operazione sia piti complica- 
ta della programmazione dei tasti 
FL..F8 (per questi basta lavorare in Ba- 
sic con il comando Key), possiamo in 
effetti, programmare anche i tasti Run/ 
stop ed Help. Passando al MONITOR e 
digitando: 

M 1000 (Return) 

si vedranno apparire, a partire dalla loca- 
zione $100 A, le stringhe associate a 
F1...F8, seguite da una stringa che è 
quella associata a Run/Stop che è Fab- 
breviazìone di Dload, seguita da 
“*,RUN. Il puntino sta per Return. Su- 
bito dopo si trova la stringa HELP, Nelle 
locazioni da $1000 a $1009 sono riportate 
le lunghezze delle 10 stringhe. 

L’operazione di disattivazione sugge- 
rita corrisponde a inserire un gruppo di 
"‘spazi” nella stringa associata a Run/ 
Stop. Naturalmente, modificando (da 
MONITOR o da Basic) le lunghezze ed i 
contenuti di quelli che possiamo a buon 
diritto chiamare ‘Tasti funzionali F9 e 
FIO”, possiamo fare in modo che un 
qualsiasi comando sia associabile ni dieci 
tasti funzione. 


20 - Commodore Computer Club 



L’UTILE 

C 128 




■ . ■■ 


mmk. 


Come aumentare la velocità di 
elaborazione del CI 28, anche in 

“modo” 64 


dì Michele Maggi 


Commodore Computer Club - 21 








L’ UTILE 


O^omc risulta dal manuale in 
dotazione dd CJ2&, esiste la possibilità 
di stabilire la frequenza di lavoro dei 
computer mediante due istruzioni: 

FAST che impone al calcolatore di 
lavorare alla frequenza di 2 megahertz 
(MHz), 

Slow che lo riporta alta condizione 
normale, vale a dire quella di un solo 

MHz. 

In quali casi conviene utilizzare Luna 
o l'altra frequenza di lavoro? 

Notiamo, anzitutto, che quando un 
programma Basic incontra Istruzione 
"Fast”, accelera notevolmente Fesecu- 
zione delle istruzioni successive, tranne 
quelle di Input/Output (I/O) che, vinco- 
late ovviamente alla velocità intrinseca 
delle periferiche (stampante, drive), non 
possono venire accelerate in alcun mo- 
do. 

Il principale inconveniente causato 
dall'Istruzione “Fast” è che si perde 
completamente il controllo del video 
perche la gestione dello schermo è una 
delle operazioni che richiedono più 
tempo. 

Questo fatto spiega perché, durante il 
caricamento di programmi da nastro, il 
video “scompare”, e anche perché molte 
utility del tipo Turbodisk (equivalenti ai 
vari Turbotape, ma per floppy disk) 
fanno scomparire il video per accelerare 
le operazioni di caricamento, 

L’istruzione Fast, quindi, si rivela uti- 
lissima quando all’interno di un pro- 
gramma, vengono eseguite elaborazioni 
molto lunghe e complesse che, inevita- 
bilmente, costringono a notevoli attese. 

Un esempio classico può essere l'or- 
dinamento alfabetico o numerico di un 
vettore che, a parte il ricorso a varie tec- 
niche che possano accelerarne l'esecu- 
zione, rimane sicuramente una delle 
operazioni più lunghe in assoluto. 

Grazie a "Fast” il tempo di ordina- 
mento di un vettore viene praticamente 
dimezzato. Compiuta l’elaborazione si 
può riprendere il controllo dd video con 
un semplice comando di li Slow‘\ 


FAST in modo C64 

Tutto quanto è stato detto finora, pe- 
rò, non costituisce una novità dato che 
si riferisce ad informazioni riportate sul 


manuale. Il caso vuole, però, che esista 
la possibilità di portare il C128, operan- 
te in modo 64, a lavorare a 2 MHz come 
se gli fosse stato impartito il comando 
“Fast”, non supportato, come è noto, 
dal misero Basic 2.0, 

Vediamo ora come si può simulare il 
comando con una semplicissima POKE. 

La locazione 53296 (in modo 64) con- 
tiene, normalmente, il valore 252. Inse- 
rendo, mediante Poke, il valore 253, 
perdiamo il video (nel senso che appari- 
ranno figure del tutto incomprensibili) 
ma avremo la possibilità di lavorare ad 
una velocità nettamente supcriore al 
normale, È ovvio che, terminata Pelato 
razionc, sarà possibile riprendere il con- 
trollo dd video con: 

POKE 53296,252 

Quanto affermato vale, però solo per 
Il C64 “contenuto" nel CI 2$ e non per 
un C64 “normale”. Tale considerazione 
potrebbe far nascere una polemica sulla 
reale compatibilità tra CI 28, utilizzato 
in modo 64, e il software destinato al 
Commodore 64, C’è qualche lettore in 
grado di far notare altre. differenze, più 
o meno vistose, in tal senso? 

Il piccolissimo programma di sort (or- 
dinamento di un vettore) ha lo scopo di 
dimostrare quanto detto finora. 


li programma 

Si tratta di un semplice e banale Sort 
che non ha particolari pretese di velocità 
ed è anzi per questo che fa al caso no- 
stro. Il suo funzionamento si busa sulla 
generazione di N numeri casuali (“N” è 
stabilito dall’utente) e su! loro successi- 
vo ordinamento in senso crescente. 

Alla fine dell’elaborazione viene vi- 
sualizzato il tempo impiegato e, subito 
dopo, vengono visualizzati i valori, In 
modo 128 “normale”, cioè senza Fast, 
per ordinare EOO numeri si impiegano 
poco meno di 3 minuti, mentre col co- 
mando ve loci zzato re, occorre circa un 
minuto e mezzo, 

Il programma si basa subordina men- 
to di numeri generati casualmente e il 
tempo impiegato, ad ordinarli è influen- 
zato notevolmente dal grado di "disor- 
dine degli stessi valori. In modo 64, sen- 
za l’istruzione POKE 53296,253, occor- 


rono mediamente due minuti c mezzo 
mentre, se si aggiunge l'istruzione in 
questione, il tempo scende a un minuto 
e dieci secondi circa. 

Anche per i tempi ottenuti in modo 64 
valgono le considerazioni precedenti, pur 
se è possibile osservare che in modo 64 
le operazioni si svolgono con una veloci- 
tà lievemente superiore. 

Funzionamento del programma 

Le linee 10-30 si occupano della ri- 
chiesta del numero dei valori da genera- 
re casualmente e da ordinare subito do- 
po. Viene anche effettuato un controllo 
sul numero digitato, e dimctìsionato il 
vettore N (E). 

La riga 40 genera numeri casuali 
La linea 50 iniziaiizza la variabile TIS, 
Le linee 60-100 eseguono il sort vero c 
proprio (che non illustriamo in dettaglio 
perche non è questo lo scopo del presen- 
te articolo). 

Le lince 1 10- 1 30 visualizzano il tempo 
TIS e 1 valori ordinati. 

Per velocizzare il tutto basterà ag- 
giungere le seguenti linee: 

In modo 128: 

55 FAST e 
115 SLOW 
In modo 64: 

55 POKE 53296,253 c 
115 POKE 53296,252 
Altre prove possono esser falle dal 
lettore, tra cui suggeriamo quella di ve- 
rificare il corretto funzionamento del- 
l’orologio interno che sovra in tende alla 
gestione delle variabili “Tl“ c “TI$. 


1 REM ORDINAMENTO IN SENSO CR 
ÉSCENTE DI UN LETTORE NUtlER 
ICO 

2 : 

10 INPUT “QUANTI UALDRI' J ;E 

B0 I F E< E OR E>7500 THEN 10 

30 Diti NCE> :PRINTCHR*C1475 

40 FOR 1-1 ID E ; N£ n-JNTf RNDU 
1*1B00)*1 : NEXTl 

50 PRINT"5T0 ORDINANDO 1 NUME R 
! . , . TIS-”00000-0” 

60 C-0 

70 POR 1-1 TO E-1:IF Ntn<-Ntl 
+1) THEN 00 

8C H-Ntl + l NCI+1 )-N< 1 >: Ntn-M 
:C-1 

90 NEXTI 

.100 I F C<>0 THEN 60 
11G PRINT “TEMPO IMPIEGATO "TI* : P 
R INT "FREMÌ UN TASTO'" 

1£0 GEI AS;1F THEN 1P0 

130 FOR 1*1 TO ErPRININC n :NEXT 


22 - Commodore Computer Club 




OLTRE IL BASIC 


COMMODORE 64 

Ordinamento 
ultraveloce 
di un vettore 


Come ridurre a pochi secondi 
un'elaborazione che può anche richiedere 

ore di lavoro. 


di Sorgati ì 


1 1 programma che presentiamo in que- 
ste pagine consente di ordinare in senso 
crescente tutti gli elementi di un vettore 
numerico predefinito, E' in grado, ovvia- 
mente, di sistemare anche gli elementi di 
un vettore stringa in ordine alfabetico. 

Descrivere il funzionamento di questa 
routine in linguaggio macchina (LM) sa- 
rebbe impossibile. Ci limiteremo* per- 
tanto, a decriveme ["utilizzo in modo tale 
che anche un principiante se ne possa 
servire, 

* Caricate, anzitutto, il programma Sort 
pubblicato in queste pagine facendo be- 
ne attenzione a trascrivere con grande 
precisione tutti i valori riportati nei Da- 
ta: un minimo errore può portare airin- 
chiodamelo del sistema. 

• Registrate e vendicate il lavoro fatto. 
In caso di errore sarà più agevole ricari- 
carlo e rintracciare lo sbaglio, 

* Dopo aver dato il Rum attendere al- 
cuni secondi l'allocazione dei Data. Se 
tutto è in ordine dovrebbe comparire, 
alla fine, il messaggio “Sor! attivato"** In 
caso contrario un mesto messaggio av- 
vertirà di un errore di digitazione, 

• Se, quindi, avete ben digitato il listato, 
da questo momento, fino a che non spe- 
gnerete l'apparecchio, avrete a disposi- 
zione un nuovo comando Basic che ha, 
come sintassi, la freccia a sinistra (primo 



Commodore Computer Club - 23 




OLTRE IL BASIC 


tasto in alto a sinistra) seguito dal nome 
della variabile assegnata al vettore che sì 
intende ordinare in senso crescente. 

Per meglio comprendere il funziona- 
mento del nuovo comando, caricate il 
programma Demo e studiatelo con 
attenzione: 


Riga 12: chiede il numero di elementi che 
desiderate assegnare al vettore stringa 
A$ (attenzione a non esagerare, per non 
incorrere in un "Out Of Memory 
Error"). 


Riga 20: crea gruppi casuali di stringhe 
alfanumeriche e le assegna ai singoli ele- 
menti del vettore. 


Riga 50: attiva il nuovo comando e vi- 
sualizza il tempo impiegato ad ordinare 
alfabeticamente (o numericamente) il 
vettore. 


Riga 60: stampa su video il vettore per- 
fettamente ordinato. 


E* ovvio che il lettore, invece di A$„ 
può indicare il nome che più gli aggrada. 

L'unica limitazione è costituita dal fatto 
che non è possibile applicare il comando 
a vettori pluridimensionali. 



ALLARME 

ROSSO 

(per ì principianti) 

Nel digitare righe di programma ba- 
sic che contengono istruzioni DATA, 
è piuttosto facile incorrere in errori di 
digitazione Supponiamo che un ipo- 
tetica linea basic numerata con 1 200 
debba contenere i tre valori: 123, 
456. 709 Ecco alcuna esempi di erro- 
ri più frequentemente commessi 

1200 DATA, 123,456,789 

C h é una virgola dopo la parola 
' DATA' 1 I dati letti dal computer so- 
no. in questo caso, quattro: 0, 123. 
456, 709 Se. infatti, non figura alcun 
carattere dopo ['istruzione DATA, au- 
tomaticamente viene assunto il valo- 
re nuilo (0) 

1200 DATA 123.456,789 

In questo caso, dopo il numero 
789, il computer, grazie alla presen- 
za della virgola erroneamente inseri- 
ta. " crede" che ci sia un attra valore 
e r non trovandolo, lo assume come 
nullo (0). 

1200 DATA 1234,56.789 

La virgola è posizionata male vale 
a dire dopo il carattere "T e non 
dopo il carattere "3 ’ Il computer non 
può sapere se il valore esatto è T23 
oppure 1234 e individuare un errore, 
in questo caso, risulta piuttosto 
laborioso 


100 REM ********»*****-****** 

105 REM * TURBO SORT * 

110 rem * per cannoDORE 64 * 

115 REM * BV FABIO 50RGAT0 * 

lc?0 REM ***++**#** + ## 1 **** + ** 

135 : 

130 FDR K”0 IO 509: READ A 
135 POKE 48152+K , A : REM S0RT STRI 
NGHE 

140 POKE 49664+K , A ; REM S0RT NUME 
RI 

145 CK-CK+A: NEXT 

150 IF CK=71B55 THEN 160 

155 FRI NT "ERRORE DI DATI NEL 1* 


BLOCCO . ” : END 

160 CK-0:FQR K-0 TD 100: READ A 
165 POKE 43B24+K, A: REM SOSTITUII 
ONE DATI PER SORT NUMERI 
170 CK-CK+A: NEXT 
175 IF CK-14063 THEN 185 
180 PR I NT "ERRORE DI DATI NEL £’ 
BLOCCO . " : END 

105 CK-0:FOR K-0 TO 17: READ B , A 
130 POKE 4B512+B, A: REM S0STITU21 
ONE DATI PER SORT NUMERI 
135 CK— CK+A+B : NEXT 
600 IF CK-10252 THEN 210 
205 PR1NT‘‘ERR0RE DI DATI NEL 3’ 


24 - Commodore Computer Club 





210 

215 

220 

225 

230 

235 

240 

245 

250 

2S5 

260 

265 

270 

275 

280 

2B5 

230 

295 

300 

305 

310 

315 

320 

325 

330 

335 

340 

345 

350 


BLDCCD . ” : END 

CK=0;FQR K«0 IO 132 : READ A 
PDKE 50432+K * A: CK“CK+A : NEXT 
IF CK-15610 THEN 230 
PR INI "ERRORE DI DATI NEL 4 J 
BLOCCO . " : END 

FRI NTCHR6 C 147 1 "TURBO SOR! AI 
T1UATO * ” : SV55043e: END 

■ 

REH DATI PER DRDINAnENTa 
REfl □RDINAMNETO STRINGHE 

PEPI ******************** 


DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 


165 , 
133 , 
208 , 
240 , 
201 , 
251 , 
000 , 
251 , 
230, 
024 , 
133, 
1B2, 
160 , 
177 , 
002, 
177, 
101 , 
024 t 


047 j 133 , 251 , 165 , 048 
252, 165,050, 197 , 252 

006. 165 . 049 . 197.251 
047 , 160 , 000 , 177 , 251 
065 , 200 , 007 } 200 , 177 
201 , 133,240,037,163 
133,092, 160,002, 177 
024,101,251 , 144,002 

092. 170.200. 177.251 
101,252,024, 101 , 032 
252, 134,251,076,006 
1G2 , 027 , 076 , 139 ,227 
002,169; 000,133,032 
251,024,101,251,144 
230,092,133,096,200 
251 , 024 , 101 , 252 , 024 

092.133.097.165.251 
105,007,144,002,230 


440 

DATA 

024 

445 

DATA 

094 

450 

DATA 

092 

455 

DATA 

200 

460 

DATA 

200 

465 

DATA 

177 

470 

DATA 

251 

475 

DATA 

003 

480 

DATA 

120 

405 

DATA 

014 

490 

DATA 

144 

495 

DATA 

024 

500 

DATA 

233 

505 

DATA 

133 

510 

DATA 

176 

515 

DATA 

005 

520 

DATA 

245 

525 

DATA 

010 

530 

DATA 

251 

535 

DATA 

255 

540 

DATA 

251 

545 

DATA 

200 

550 

DATA 

064 

555 

DATA 

207 

560 

DATA 

164 

555 

DATA 

003 

570 

DATA 

132 

575 

DATA 

176 

500 

DATA 

006 

505 

DATA 

245 

590 

DATA 

255 

595 

DATA 

IBS 


144,004 
160 , 000 
200,011 

245. 165 

025.144 
251,170 

130 . 145 
208,241 

133.002 
165,251 
002,230 
144,011 
003, 176 

253 . 165 
003,078 

165.251 

165 . 252 

240.002 
197 , 095 

166.255 
024,105 

157.000 

207 . 165 
165,037 

252. 165 

176.001 

097 . 165 
003,076 
165,098 

155.255 
169,000 
064 , 207 


, 165 , 091 , 133 
, 177 , 003,209 
, 200 , 136,094 
, 095 , 240,004 
, 023 , 150,000 
, 177 , 253 , 145 
, 253 , 200,192 
, 165 , 002,073 
, 165 , 002,208 
, 024 , 105, 003 
, 252 , 133,251 
, 165 , 253,056 
, 002 , 199,254 
, 252 , 197,254 
, 160 , 192 , 208 
, 137 , 253, 144 
, 197 , 037, 144 
, 176 , 037, 165 
, 176 , 031 , 230 
, 164 , 252,165 
, 003 , 144 , 001 
, 207 , 152,157 
, 096 , 157, 128 
, 157 , 192,207 
, 251 , 056,233 
, 136 , 133,096 
, 033 , 197,097 
, 140 , 192,200 
, 197 , 096 , 144 
, 240 , 027, 166 
, 207 , 133 , 098 
, 133 , 099 , 1 B 9 


355 DATA 252,133,251,164,097,165 
360 DATA 096,056,233,003,176,001 
365 DATA 136,133,096,132,097,032 
370 DATA 165, 193, 169,000, 133,255 
375 DATA 165,251,133,093,165,252 
380 DATA 133,099,165,098,133,251 
385 DATA 165,099,133,252,165,096 
390 DATA 133,253,165,097,133,254 
395 DATA 169,128,133,002,160,000 
400 DATA 177,251,240,072,133,088 
405 DATA 200 , 177 , 251 , 133,009, 200 
410 DATA 177,251,133,090,160,000 
415 DATA 177,253,240,077,133,091 
420 DATA 200,177,253,133,092,200 
425 DATA 177 9 253 , 133 , 093 , 169 , 000 
430 DATA 133,095,165,088,197,091 
435 DATA 176,007,133,094,230,095 



Commodore Computer Club - 25 



600 

605 

610 

615 

620 

625 

630 

635 

640 

645 

550 

655 

660 

665 

670 

675 

660 

685 

650 

685 

700 

705 

710 

715 

720 

725 

730 

735 

740 

745 

750 

755 

760 

765 

770 

775 

760 

76S 

730 

785 

B00 

805 

810 

815 

820 

825 

830 

035 

840 


DATA 1 28 , 207 , 133, 036 , 109 , 1 92 
DATA 207, 133,097,190, 255 ,076 
DATA 140 , 192 , 036 , 030 , 060 , 080 
DATA 120, IBS, 251 ,133, 0BB, 165 
DATA 252,133,009,173,117,220 
DATA 041 ,003, 170 , 165, 003 , 133 
DATA 254, 103, 161, 193, 024 ,101 
DATA 088 , 144 , 002 , 230 , 254 , 133 
DATA 253 , 1 65 ,254,107, 097 , 240 
DATA 004 , 144 , 000 ,176, 023 , 1 65 
DATA 253,187, 036 ,176.017,160 
DATA 000 , 177 , 088 , 170 t 177 , 253 
DATA 145 , 000 , 136, 145 , 253 „ 200 
DATA 182 T 003 , 20B , 241 , 165 , 088 
DATA 024 , 105 , 003, 144 ,002 >230 
DATA 068 , 133, 068 , 1 65 , 093 s 187 
DATA 097 „ 144, 104 , 165 , 0BB ,137 

DATA 086 j 144 , 178 , 036 , 000 , 000 

+ 

REM ********************* 

REP1 DATI PER SOSTITUZIONE 
REM PER ORDINAMENTO 
REM NUMERI 

REM ********************* 


DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 

+ 

* 

DATA 

DATA 

DATA 

DATA 

DATA 

DATA 


160 t 
133 , 
208, 
208 , 
032, 
002, 
230, 
208, 
170 , 
145 , 
241 , 
002 , 
132, 
200 , 
245 , 
036 , 
234, 


001 

081 

006 

024 

230 

208 

184 

057 

177 

253 

165 

024 

033 

006 

086 

163 

234 


>177 , 
,177, 
, 1 65 , 
, 165, 
, 134, 
, 066 , 
, 165 r 
,160, 
, 253 , 
, 200 , 
, 002 , 
, 144 , 
, 177 , 
, 200 , 
,144, 
,002, 
, 234, 


253, 
251 > 
081, 
091 , 
165, 
240, 
033, 
000 , 
145, 
192, 
073 t 
026, 
251 , 

132, 
003, 

1 33 , 
234, 


041 , 
041 t 
240, 
240, 
093, 
008, 
201 , 
177, 
251 , 
005, 
12B , 
160, 
203, 
005, 
230, 
083. 
234 


128 

120 

017 

077 

201 

032 
001 
251 
130 
208 
133 
000 
253 
208 

033 
036 


845 

850 

955 

660 

B65 

870 

B75 

BB0 

QB5 

880 

835 

900 

905 

310 

815 

820 

925 

930 

935 

340 

345 

850 

855 

860 

865 

970 

375 

360 

885 

990 


REM ****************** 

REM DATI 

REM PER RICONOSCIMENTO 
REM NUOUQ COMANDO 
REM ****************** 


DATA 
DATA 
DATA 
□ AIA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 
DATA 


163,011 
137, 141 

115 . 000 
032, 121 

1 63 . 000 
133,254 

160.001 
201 , 036 
144 , 020 
201,058 
000,200 
011,076 
024, 101 
123,133 
036,208 
141 , 025 
000,003 
032,000 
002,230 
168,250 
200,185 
194,032 
167 


,141,006, 
, 003 , 003 , 

, 201 , 085, 
, 000 , 076 * 
, 133,252, 
, 165, 123, 
, 162 , 004 , 
,240,024, 
,201,031 , 
, 240,012 , 
, 202,208, 
t 138,227, 
, 122,144, 
, 122,160, 
,027, IBS, 
, 138,200, 
, 128,141 , 
, 192,230, 
, 123,076, 
, 000, 141 , 
,250,000, 
,000,184, 


003, 169 

096.032 
240 , 006 
231 p 167 
165,122 
133,255 
177,254 
201,065 
176,011 

153.250 
231 , 162 
170,152 
002,230 
001,224 
250,000 

165.250 
032, 192 
122.208 
174, 167 
025, 184 

141.032 
076. 174 


273 . 185 . 269 . 005 . 218 . 194 

164 . 065 . 640 .005.633.005 
593 , 195 ( 572 , 200 t 571 , 150 

570 . 100 . 563 . 050 . 567 . 1 94 

528 . 134 . 512 . 005 . 495 . 005 

450 . 184 . 435 . 005 . 421 . 005 


10 REM DEMO SORT 
12 INPUT "UETTDRE DI ELEMENTI”; 
N 

15 DIM A$CN 1 : FOR K-0 TO N 
20 R-RNDC 1)*5: AS-" "tFOR J-l TO 
R; AS-AS+CHR5CRNDC 11*86+65) : N 
EXT 

30 PRINTK ; A$: ASCK) a ASr NEXT 
40 PRINT : FRI NT "PREMI UN TASTO": 
POKE 190 , 0 : UÀ I T 198,1 

50 T I$- "000000 "^ASìT-TI :PRINTT 
/60 "SEC - " : POKE 13B,0:UAIT 13 
0,1 

60 FOR K-0 TO N : PR I NTASj C K ) : NEXT 


26 - Commodore Computer Cfub 




Da oggi c’è un nuovo 
distributore di 
stampanti FACIT 
per il tuo 

Personal Computer IBM 


FàCIT 

Arenano (GÈ) \*.m degli l Ini, 15 - Tei 010/9112036 
Bergamo D I P Bergamo \ iu Ri/ri'ii Palazzo. OD 

Tel: 035/233909 

Bologna DJ P P .za Porla Maccarelli, 7 

Tele 051/240602 

Castelfranco Veneto (TV) Vectun Borgo 1 reviso, 45 

Tele 0423/496222 

Fabriano (A!V) D I f* tu< •Mìa Via C li miniasi, Ifi 
IVI.: 0732/22230 

Livorno DI !’ /.minio Via Sanirgna. ( l 
Milano D I I’. Milano Via V « Josta* 3*1 
Tri : 02/2841 )ó( IH- 28-+<H8« 

Roma D I P Homi, Via È. Colombo. 179 
Tri.: 06/5133041 

Torino Elcomm Via Vrtfcn. 36 - Tri.: 01 1/832620 


Distributori FACIT 


Bacano dii Grappa (VI) Snidi» /. <V (:. >/i,t \ Ir 

Diaz. 27 • Te). 0424/21 254 1 


Belluno >67' Computer .Si 'tru, \ ih l rlirr. 244 
Tri. 0437/20826 

Castelfranco V. (TV) I olpuftì snc Via Ricreati. 25 
Tel 0423/495961 


(inrizia Quark *rl Via l dine. 143 IVI 0481/391693 
Mestre Loc, Chirignago Computimi* srl 
Vìa Mirane», 420 - Tel 041/917$66 


Mestre/Venezia 

Rii ( àuìtputrr* srt 
P /a Burl ile. 45 
Tel. 041/958007 

Mestre /Venezia 

Offrili I J >rn }/} srl 

(/su del Popolo, 32 
Tel 041/5053333 



Montcbdlhina (TV) Volpstn sne Vìa Mnmegrappa* 103 
Tel 0423/302771 

Padova >5 s/rtn Jfrw sns P.za De (disperi. 14 

Tel. 049/38412 

Pordenone Strutture Informatiche -*ri Via s - Caterina. 3 
Roma Data Office Via Sinliu, 205 - Tei 06/4742651 
Dr Inulti 

Roma Expo Vìa l\ Novembre - Tel 06/6783488 
Sig. Buffi m 

Roma Frrsufuil Computer P za Pio XI 26 

Tel 06/6380353 

Roma Vnlde Adel P .za Bomsizza. 3 
Tel. 06/3 1633 1-3 16676 

S. Dona di Piave Computine srl Rza Rizzo. 63 
Tel. 0421/52548 

Schio (VI) Bit >r/ Via Roccoletto. 23 
Tel 0445/28928 

Schio (VI) /, ima 4 sor \ iu Ri vii del (tristo. 4/8 
Tel 0445/28970 

I a ver nelle (VI) UWrfr n Infornmtàw srl Ma Venuta. 64 
Tel 0444/573967 

I reviso Informatica Ire sH V,|e della Repubblica. 19/B 

Tel 0422/65993 

Trieste Muffi sne Via A. Dui/. 24/ A * Tel 040/306091 
Udine (ÌC Mietiteli sne \Me Ungheria. 64 
m 0432/2918:15 

Verona UVjmpufcJL Sfatemi srl \ le dii t^vnm, 33 
Tel 045/50931 1 

Vicenza Centro htfontmtica srl i'so Fogazzaro. 28 

Tel 0444/38513 


Cerimi Dire/ Collimili 
Pai a / su Odone Ingr. I 
2004! Varale Rrian/a MI 
IVI : (H9/rri&mi 
Telex A26423 Sl.W BC 



Obroins sei 




GIOCHI 

COMMODORE 64 - C-16 PLUS/4 


er lavorare in modo produttivo cd 
efficace col computer è necessaria, tra le 
altre cose, una buona, se non perfètta, 
padronanza della tastiera. 

Questo È uno dei problemi più ardui 
da risolvere per t principianti, che devo- 
no “addestrarsi" notevolmente per col- 
mare la lacuna. Farlo con un programma 
tipo “corso di dattilografia" o altre cose 
del genere può risultare noioso e stres- 
sante, mentre imparare per mezzo di un 
giochino lo è sicuramente di meno. E' 
proprio questo lo scopo di SCASSAMI.’ 
RO, un game che riesce ad essere anche 
utile. 


Il listato gira sul C — 64, sui C — 16 e sut 
Plus/4 e non dovrebbero esistere proble- 
mi per la trascrizione in quanto c relati- 
vamente breve. Ricordiamo che le righe 
conenenti soltanto istruzioni REM pos- 
sono non essere copiate; hanno soltanto 
funzione di chiarimento e non influisco- 
no sul funzionamento dei programma. 

Per facilitare la lettura del listato sono 
stati eliminati tutti i simboli "strani" in 


reverse, sostituendoli con la corrispon- 
dente funzione CHRS. 

Prima di dare il RUN, registrate e veri- 
ficate il programma: un errore di copia- 
tura ^specialmente per le funzioni di PO- 
KE) può essere letale. 


Comesi gioca 

Scopo dei gioco è impedire che le 200 
homhc che vengono sganciate distrugga- 
no completamente il muro posto in bas- 
so, Ciascuna bomba è, in realtà, una del- 
le 26 lettere dell alfabeto che* ad ogni 
buon conto, è riportalo in basso sotto 
forma dì tastiera ASCII. Per impedire 
che distruggano un pezzo di muro è ne- 
cessario premere la lettera corrisponden- 
te prima delFimpatto. 

A! l'inizio del gioco viene chiesto i! li- 
vello di difficoltà che può essere 1, 2 r 3, 4 
oppure 5: 1 è il più difficile mentre il 5 T 
ovviamente* è piuttosto semplice 
Il livello di difficoltà selezionato influisce 
per tre motivi: 

• Varia la velocità della bomba 

• Cambia la distanza del muro dal pun- 
to da cui partono le bombe; 

58 - Commodore Computer Club 


Scassamuro 

Un semplice giochino per acquistare 
familiarità con la tastiera. 


dì Maurizio Dell 1 Abate 






^ Mi 

L 


# M uta lo spessore del muro: a parità di 
bombe sganciate è più facile che venga 
distrutto un muro sottile, che uno 
spesso. 

[I gioco termina quando il muro viene 
distrutto completamente o quando ven- 
gono sganciate le 200 bombe. 

Nel primo caso il programma vi comu- 
nica che non avete sufficiente dimesti- 
chezza con la tastiera; se invece le 200 
bombe non sono bastate a decimare il 
muro, viene comunicato il punteggio. 
Questo ò inversamente proporzionale al 
numero delle bombe che non sono state 
bloccate. 


PossibHi sofisticazioni 

11 programma si presta molto bene per 
essere ampliato. Qualche idea: 

• Inserire una routine sonora nelfulti- 
ma riga, 

$ Variare il numero delle bombe a se- 
conda del livello di difficoltà. 

• Fare in modo che un simbolo grafico 
abbia una funzione di jolly e possa quindi 
essere fermato premendo un tasto 
qualsiasi, 

• Fare in modo che una lettera possa 
cambiare durante la caduta. 





100 REM SPACCAMURO 

110 REM GIOCO PER C-64 E C-1G 

120 : 

130 REM BY MAURIZIO DELL'ABATE 
140 : 

1S0 PR I NTCHRSC 1471 ”1 C-64”:PRIN 
T”2 C-1B PLUS/4" 

1G0 GET A$:IF A$-”” THEN 1E0 
170 IF A$-"l" THEN SC-1024:GOTO 
220 

180 IF AS-”2” THEN SC-3072:GOTO 
220 

130 GOTO 160 
200 : 

210 REM SCHERMATA INIZIALE 

220 PRINTCHRSC147) ; : PRINT : PRINT 
230 PRINT” SCA55AMUR0" 
; CHRSC 144 ) 

240 FOR 1-0 TO 33: PR1NTCHRSC 195 
) ; : NEXT 

250 PRINT: PRINT" LIUELLO DI DIF 
FICOLTA ’?" 

260 PRINT : PRINT” 1-DIFFICILE .. 

5-FACILE” 

270 GET AS-.IF A$< " 1 " OR A$> "5” 
THEN 270 

2B0 U-10*UALCAS)-10: GOSUB 710: L 
U-UALCAS) :REM U-RITARDO 
290 PRINT: PRINTCHRSC144) ; ” HAI 
SCELTO: ";LU 

300 PRINT" PREMI UN TASTO PER I 
NIZIARE” 

310 GET RS:IF LENCRS)-0 THEN 31 
0 

350 GQSUB 710 

330 REM INIZIO GIOCO 

340 PRINTCHRSC147): PRINT 
350 FOR 1-0 TQ 39: PRI NTCHRSC 195 
> ; : NEXT 

350 FOR 1-0 TO B+LU: PRINT: NEXT 
370 PRINTCHRSC144) ;CHRSClBi) ; 

300 FOR 1-0 TO LU 
330 FOR G-0 IO 33 : PR I NTCHRSC 32 3 
; : NEXT 

400 NEXT : PRINT : GOSUB 5B0 
410 FOR 1-0 TO 133 : GOSUB 710 
420 2X-40*RNDC 1 ) : AS-0 
430 LX-SC+160+2X : IF 0<15 AND PE 
EKCLX+40*CB+C2*LU))>-32 THE 


N O-O+l: GOTO 420 
440 0-0 : CL-BG*RND C 1 ) + 1 
450 GET RS : FOR Y-0 TO 13:PRINTC 
HRSC 19) : PRINT” SGANCIATE” il 
+1 jCHRSC1S7) ; ” BOMBE” 

460 IF CO-CLU+1)*40 THEN G10 
470 FOR B-0 TO LU-1:GET AS:IF L 
ENCAS)>0 THEN AS-ASCCAS) 

400 NEXT 

490 IF AS-INTCCD+64 THEN Y-13: 

GQSUB 710: GOTO 550 
500 DF“LX+40*Y: IF PEEKCOF)-160 
THEN CO-CO+1 : Y-19 : POKE DF-4 
0,32; GOTO 520 

510 POKE DF , CL : POKE DF-40,32:FO 
R HH-1 TO (J; NEXT: REM U-RIT 
ARDO 

520 NEXT: POKE DF.32 
530 NEXT 

540 REM MESSAGGI E PUNTEGGIO 
550 PRI NTCHRSC 147); : PRINT: PRINT 
: PRINT 

560 PRINT” OK, UA BENE.” 

570 PRINT: PRINT" IL TUO PUNTEGG 
IO E CHRSC 144) ; INTCC 1/CO) 
* 1 0000 ) 

5B0 PRINT: PRINT” PREMI UN TASTO 
SE UUDI MIGLIORARE." 

590 GET RS: IF LENCRD-0 THEN 59 
0 

600 GOSUB 710; RUN 
610 PRINTCHRSC147) : PRINT; PRINT: 
PRINT 

620 PRINT” I TUOI RAPPORTI CON 
LA TASTIERA" 

630 PRINT" NON SONO TRA I MIGLI 
□RI” 

640 PRINT : PRINT : PRINT” SEI RIUS 
CITO A FARTI ABBATTERE" 

650 PRINT” IL MURO," 

660 PRINT: PR1NTCHRSC 144)" CONTI 
NUA AD ALLENARTI I GOTO 57 
0 

670 : 

6B0 PRINT "0 WERTYU I OP" 
630 PRINT" ASDFBHJKL” 
700 PRINT” Z X C U B N M" ; : RET 
URN 

710 RETURN: REM INSERIRE LA RDU 
TI NE SONORA 


Commodore Computer Club - 29 



GIOCHI 

C/64, C/16, Plus/4 


Magic square 

Un famoso rompicapo trasformato in video 
game, per la gioia dei Commodoriani e per il 

dolore del cervello. 



uesti) gioco mescola io modo casus- 
le le lettere dell’alfabeto dalla “A" alla 
“CT e le dispone in una tabella quadrata 
di quattro righe per lato per un totale di 
iò caselle. 

Una delle celle rimane vuota e scopo 
del gioco £ quello dì porre in ordine alfa- 
betico le lettere facendole scorrere nei 
quadrato, analogamente al classico fio- 
chi rio con i numeri da 1 a 15, 

Per muovere una lettera sì deve pre- 
mere, è ovvio, il tasto ad essa corrispon- 
dente. Se risulta ' bloccata' a causa della 
Lontananza dalla casella vuota, sul video 
compare il messaggio: 1 Movimento non 
possìbile l \ Lo spazio vuoto deve, ai ter- 
mine de! gioco, trovarsi nello cella più in 
basso a destra della griglia In caso con- 
trario il programma non sarà in grado di 
riconoscere la vostra fatica mentale. 

Nel gioco le mosse vengono conteggia- 
te e visualizzate, ma non potete effet- 
tuarne più di 300 (sembrano molte ma 
non lo sono affatto . U Superato questo 
limite il gioco termina imsoluto. 

E' stata introdotta un’altra sofistica- 
zione, assente nel gioco "meccanico" 
originale. F H possibile invertire la posi- 
zione di urta lettera con quella che si 
trova nella casella sottostante. Per eftct 
tua re questa mossa è su fficiente premere 
il tasto "5”, seguito dalla lettera deside- 
rata. Come è facile intuire, non è possibi- 
le operare uno scambio indicando una 
delle lettere presemi neirulrima fila in 
basso Un messaggio, in questo caso, se- 
gnalerà l'errore. 

L'uso de Min versi onc facilita però no- 
tevolmente il gioco, ed è quindi giusto 

30 - Commodore Computer Club 


di Man ri/iu DelTAbuU- 


penalizzare il giocatore conteggiando 
ben quaranta mosse per ogni scambio 
effettuato. Jn questo modo non potrete 
ragionevolmente sfruttare la funzione di 
scambio troppo spesso nei corno della 
stessa partita 

La parte più difficile de! gioco si verifi- 
ca quando le ultime tre lettere (M, N. Oj 
sono le uniche che devono essere ancora 
ordinate, iiolo se utilizzerete con intelli- 
genza l'inversione riuscirete a portare a 
termine il gioco. Ricordate che l'inver- 
sione agisce solo in senso verticale e, 
quindi, se vorrete invertire due leitere 
affiancate tra loro dovrete opportuna- 
mente spostarle. 

Il gioco gira sut Commofore a 40 co- 
lonne, a patto però che segnaliate al pro- 
gramma quale computer state usando. I 


commenti al listato (REM), che in que- 
sto caso non sono pochi, possono tran- 
quillamente essere tralasciati: le lince di 
commento non vengono infatti “chiama- 
te” da istruzioni del tipo GOTO oppure 
GOSUB. 

11 programma non prevede suoni, co- 
lon. o particolari effetti grafici al lo scopo 
di non compromettere la compatibilità: è 
compito vostro, se lo desiderate, rendere 
più gradevole il programma. 

Concludiamo ricordando la corretta 
disposizione delle ledere affinchè il rom- 
picapo sia considerato completo: 

A B C I) 

E F G H 
! J K E 
M N O 



100 REM QUADRATO MAGICO 
105 : 

110 REM BY MAURIZIO DELL’ABATE, 
11S REM PER C64 , C1S, PLUS/4 
■120 ; 

125 FRINTCKRSC147) : PRINT” 1. CS 
4 E C12B MODO 64” 

130 PRINT : PRINT” 2. C16 E PLUS/ 
4”: PRINT: PRINT” SCEGLI ... ” 
135 GET 0$ : I F 0$<”1” OR QS> "2” 
THEN 135 

140 1F Q$-”2” AND PEEKCl)-55 TH 
EN E-l: PRINT "SECONDO ME HAI 
IL 64 . . . UEDREMO ‘ I " 

145 IF E-l THEN FOR RE-0 TO 300 
0: NEXT 

150 LM-300: REM NUMEROSI MI TE DI 
MOSSE 

155 EN-1000: DIM LSC3, 3) : PRINTCH 
RSC147) 

160 PRINT: PRINT: PRINT TABC11);” 
” : REM 14 UOLT 

E TASTO COMMODORE + @ 

165 PRINT TABC111CHRSC18)” MAGI 
C SQUARE ” 

170 PRINT: PRINT TABC83 "OUUERO: 

GIOCO DEL 15 PRINT 
175 FOR 1-0 TO 39: PRINT ; :NEX , 
T:PRINT: PRINT 
100 REM ’»«*»****«******’•* 

1B5 REM USA SHIFT + C, SHIFT + 

1S0 REM COMMODORE + A, S, Z, X 

1S5 REM COMMODORE + Q, W, E, R 

200 REM SHIFT + + 

205 REM 

210 PRINT TABI 14) ; ” n-ro ” 

215 FDR 1-0 TO 2 

220 PRINT TABI 14 ) ; " I I ì I I” 

225 PRINT TABC14) ; " H—f'-'H” 

230 NEXT 

235 PRINT TABC14) ; ” l \ ì 1 t” 

240 PRINT TABC14) ; " 1 — 1 — *<-'*— *” : P 
RINT 

245 FOR I“0 TO 3S: PRINT”-” j : NEX 
T: PRINT: PRINT 
250 : 

255 REM INIZIO CASUALE 


265 FOR I-GS TO 73 
270 NC-4*RN0C1) :ND-4*RNDC1) : IF 
LI C NC , ND ) < > ” “ THEN 270 
275 LSCNC.NDl-CHRSC I) : NEXT 
2B0 : 

285 REM INSERISCE LO SPA2I0 
230 : 

2S5 FOR B-0 TO 3 
300 FOR 1-0 TO 3 
,305 IF LSCI.B)-"” THEN LSCI.B)- 
CHRSC32) : GOTO 330 
310 NEXT: NEXT 
315 : 

320 REM STAMPA E CONTROLLA 
355 : 

330 U-0: CC-0: X-15: Y-12: FOR B-0 
TO 3: FOR 1-0 TO 3 
335 AS-LSC I , B) : GOSUB G65: IF AS- 
CHR$(G5+CC) THEN V-U+l 
340 CC-CC+1 ; X-X+2 : 1 F X-23 THEN 
X-15: Y-Y+2 
345 NEXT: NEXT 

350 IF U-15 THEN G10: REM DITTO 
RIA 

355 IF MS>— LM THEN 635: REM SCO 
NFITTA 
360 : 

365 REM LEGGE LA TASTIERA 
370 : 

375 GET AS 

3B0 IF AS-CHRSCS3) THEN 510: REM 
CAMBIO 

3B5 IF AS<”A” OR A*>”0” THEN 37 
5 

3S0 : 

335 REM E’ POSSIBILE LO SPOSTAM 
ENT07 
400 : 

405 FOR B-0 TO 3: FOR 1-0 TO 3:1 
F LSC I , B)<>AS THEN NEXT: NEX 
T 

410 Z— I-1:IF Z<0 THEN 420 
415 IF LSC2,B)-CHRSC32) THEN 47 
0: REM POSSIBILE MUOUERSI A 
SINISTRA 

420 Z— I +1 : IF Z>3 THEN 430 
425 IF LSCZ, B5-CHRSC32) THEN 47 
0: REM POSSIBILE MUOUERSI A 




2B0 


DESTRA 




Commodore Computer Club - 31 



GIOCHI 


430 

435 


440 

445 


450 


455 

460 

465 

470 

475 

480 

405 

490 

495 

500 

505 

510 


515 


500 


530 

535 

540 


545 

550 


560 

565 


X“B-1 : I F X<0 THEN 440 
IF LSC1 .XX-CHRSC3S) THEN 49 

0 ; REM POSSIBILE MUOUERSI I 
N ALTO 

X«B+1:IF X>3 THEN 450 
IF L$(I ,X)“CHR$C35i THEN 43 
0 : REfl POSSIBILE MUOUERSI I 
N BASSO 

A$-”MOUI MENTO NON POSSIBILE 

" : X-l ì Y— 1 : BOSUB 
665: GOTO 375 

* 

REM A SINISTRA E A DESTRA 

4 

LSC I , B3-CHRSC3B5 ;LS£Z,B3-AS 

:GOTO 500 

* 

* 

REM IN ALTO E IN BASSO 

V 

m 

LSCI ,B3“CHRSC3H):LSCI,X)-AS 

:GOTO 500 
■ 

REM SCAMBIO DELLE LETTERE 

-V 

■ 

AS= "SCAMBIO TRA LA CASELLA 
RICHIESTA. . . " : X-l : Y-l : GOSUB 
6S5: FOR 0-1 TD ENlNEXT 

AS-"E LA CASELLA SOTTOSTANT 
E. ": X-l : Y-l: GOSUB 

BBS: FOR Q-l TO EN : NEXT 
AS- "QUALE CASELLA DESIDERI? 
£ PREM II " : X-l : Y-l : GOSUB 
6SS : FOR 0-1 TO EN : NEXT 
GET AS 

IF AS-CHRSC3EJ THEN 540 
IF AS< "A ” OR AS^’O" THEN SE 
5 

FOR B-0 TO 3: FOR 1-0 TO 3:1 
F LSCI.BIOAS THEN NEXT : NEX 
T 

NB-B+1 : IF NB>3 THEN 450 
CS“LS£ I , B3 : Liti , B)-L$C I , NB) 
:LSCI ,NB)=CS ‘ 

MS— MS+40 : AS- "TI PENALIZZO C 
ON40 MOSSE. MOSSE: ”+STRS CMS 
): X-l: Y-l : GOSUB 665 
GOTO 330 


570 REM AGGIORNA E STAMPA LE MO 
SSE 
575 : 

5B0 JHS-" ” : REM B SPAZI 

BIANCHI 

595 MS-MS+1 : AS— ”QK . MOSSA UAL IO 
A. MOSSE: "+STRSC MS3+ JHS : X“1 
: Y-l: GOSUB 665 
500 GOTO 330 


REM CASO DI UITTORIA... 

A 

AS— CHRSC 10)+ "HAI UINTOI MI) 

I I X-l: Y-l: GOSUB 665: FOR I 
-1 TO S000 : NEXT 
AS»“CE L’HAI FATTA IN”+STR$ 
£ MS 3 + ” MOSSE. “ : X-l : Y-l : G 

□SUB 665: GOTO 635 


600 

605 

610 


615 


6S0 : 

6E5 REM ...E DI SCONFITTA 
630 : 

635 FOR 1-1 TO E000:NEXT 

640 AS—CHRSC IBI +”HAI PERSO! ) M ! 

! t X-l: Y-l: GOSUB 6GS:F0R I 
-1 TO E000; NEXT 
64S AS- "TROPPE MOSSE. ALLENATI 
E MIGLIORERAI !”: X-l: Y-l :GOS 
UB 665: GOTO 605 


650 

655 

560 

665 

670 


675 

680 

605 

650 

695 

700 

705 

710 

715 


REM POSIZIONA IL CURSORE A 
X,Y 

A 

4 

IF OS-"E” THEN 675 
POKE 7B3 , PEEK £ 703 1 AND E54 : 
POKE 7B1 , Y : POKE 70E,X:SYS65 
5E0 : PR I NTAS : RETURN 

CHAR . X , Y-l , AS : RETURN 

* 

« 

REM PARTE C0NCLU5IUA 

*- 

4 

FOR 1-1 TO E000 : NEXT 
AS- "PREMI * PER GIOCARE 01 
NUOUO" : X-l: Y-l : GOSUB 665 
GET AStIF ASOCHRS£4S5 THEN 
705 
RUN 
END 


32 - Commodore Computar Ckib 



AdVBFTflajrp 



delle 


colonne V Sbasso costo , jtà e basse P' e 

sto mpa r ' t ' mfl non boss d nL , 0V i prodotte - 0 45 cps- 
Basso costo, questi due n f irn j Z zata 

ecco le dl «**?■» ""ti PC 

Velocita a 80 P g ^ co n I 

V#l£££ lo co.P-r d r mercato in qu 
nataralment cofn p«t.tivo 

- 55 Sg£--r^ 5 K 5 

■SSS ÈsssffK*"'* 












MANNESMAN^ 

7XLLY 

20094 Càrsico fMJJ - Vro Borsini, ó 
TèI (02) 4502850 855/860 
865 870 

refe* 3U371 Tafly I 
00144 Rome ■ YioM Pcraglio, 15 
Tei (Ùò) 5984723 5984406 
t0099 San Mauro (TO) 

Vto Cosate, 308 - Tel (Oli) 8225171 
40050 Montevegho (80) 

Via Einstein. S - Tel (ÒSI) 832S08 


r 

uO 





T 

r~ 


1 


HARDWARE 
COMMODORE 64 


Speed dos da Formula 1 


Come spremere il drive e forzare il C-G4 per 
trasferire dati alla velocità di oltre dieci Kbyte 

al secondo 




R 


,cr capile bene le straordinarie possi* 
bilità del prodotto che stiamo per descri- 
vere è necessario spiegare il modo in cui, 
di nonna, vengono trasferiti i diri tra 


computer e periferica. 

Un dato, facente parte di un program- 
ma o di una elaborazione, è costituito da 


un byte che, a sua volta, è fonnato da 
otto bit. Ber come sono fotti, dunque, 
sarebbero necessari otto fili elettrici (uno 
per ciascun bit) per trasferire un byte alla 
volta. 


1 computer Commodore* come con- 
nessione per periferiche, utilizzano, in- 
vece, la tiBsmìssioiie cosiddetta seriale 
che consiste nelTinviare (o ricevere) ver- 
so (da) la periferica ì sìngoli otto bit eo&i- 


tuenti il dato, uno alla volta. 

Il motivo di questa scelta è dovuto a mo- 
tivi economici: un “Bus” («insieme di 
connessioni elettriche) costruito da otto 
fili elettrici è decisamente più difficile da 
realizzare in modo economico sulla pia- 
stra del calcolatore. Quanto asserito tro- 


va conferma nel differente prezzo dei 
connettori per grossi computer che, co- 
me è noto, hanno in dotazione un Bus 
parallelo. 

Il grande vantaggio di una economia di 
produzione sì traduce però, inevitabil- 
mente, in una minore velocità di rice— 
trasmissione. 

Per capire il perchè, vediamo come fun- 
zionano i due sistemi: 


• Collegamento parallelo 

Il Bus è costituito, principalmente, da 
nove cavi. Quando il computer deve in- 
viare un dato, “posiziona" gli otto bit che 
lo costituiscono sui corrispondenti otto 
fili elettrici. 

Completata questa operazione, il no- 
no filo "comunica" alla periferica inte- 
ressata che il dato può esser letto. H mo- 
do di segnalare tale possibilità può esser 
realizzato in molti modi: ad esempio te- 
nendo a “0” Lo stato del nono cavo du- 
rante il posizionamento del byte e met- 
tendolo a ”1" quando Toperazione è 
conclusa o viceversa. 

Oltre ai nove cari sono presenti altri 


34 - Commodore Computer Club 




HARDWARE 


segnali che comunicano al computer che 
il dato è staio correttamente ricevuto 
dalla periferica e che quindi può esser 
inviato il successivo. 

Tale procedura di scambio di dati si 
chiama, in inglese, “Handshalting" che, 
letteralmente, vuol dite “Stringersi la 
mano". Il termine deriva dal fatto che si 
immagina che computer e periferica. 
Ogni volta che completano una funzione, 
si stringano la mano per segnalare, ap- 
punto, il termine dell'operazione e la 
possibilità di effettuare quella 
successiva. 

Ma dò che più interessa è che la velo- 
cità può esser misurata in byte dato che 
un intero byte viene trasferito nel l'unità 
di tempo. 


Con questo tipo di rice — trasmissione, 
come è intuitivo, i cavi del Bus sono in 
numero decisamente minora. 

Quando un byte deve esser trasferito, il 
computer immette, sullo stesso cavo, 
uno alla volta gli otto bt che lo costitui- 
scono. Si suppone, dunque, la presenza 
di una sorta di co malore software che 
consente di sapere il rnomerto in cui è 
Stato inviato l'ultimo dato e di prepararsi 
a ricevere il successivo “pacchetto” di 
otto bit. 

In questo caso la velocità si misura in 
bit che, come t intuitivo, risulta, agli «ti 
pratici, decisamente inferiore a quella 
parallela. 

Affidabilità 

La bassa velocità di trasnissone rea- 
lizzatiti e col dirò 1541 non è dunque 
dovuta al desiderio dì una maggiore affi- 
da biM ma proprio al latto che, inviando 
un bit alla volta, non è pruderie elevarla. 
Se fosse possìbile inviate un byte intero, 
alla stessa velocità con cui si invia un bit, 
l'affidabilità resterebbe, grossomodo, 
invariata. 

Vi sono, comunque, alcune cartucce 
che, modificando una parte del KemaJ, 



consentono di aumentare la velocità di 
invio. Questo, però, rimane di tipo seria- 
le e non e levabile, per questioni di pru- 
denza, oltre un certo limite. 


LoSpeedDos 

La Ditta Nrwa Soft di Sesto San Gio- 
vanni {P.G. Boa N.S3 Tel, 02/2440776) 
fornisce, al prezzo di L. 100000, un siste- 
ma hardware — software in grado di rag- 
giungere velocità di trasferimento dati 
impensabili per un computer della fascia 
bassa, come, appunto, il C /64. 

Come si può notare dalle fotografie, 
con rinserimento del ‘Turi»" sono ne- 
cessari due cavi tra computer e periferi- 
ca. E primo à quello seriale “normale". B 
secondo è quello parallelo che collega, 
tramite la porta utente, Fintemo del 
drive. 

Per “truccare" il vostro sistema è ne- 
cessario effettuare alcune operazioni 
Hardware che, «ebbene sem purissime, 
richiedono attenzione e precisione in 
modo da evitare corti dmiiti, Per andare 
incontro anche a coloro che non se la 
sentono di manomettere il prono siste- 
ma, la Nrwa Soft invia, con la confezio- 
ne, l'elenco dei centri italiani autorizzati 
a compiere l'operazione. 


Ecco, comunque, ciò che sì deve fare 
tare il proprio sistema dello Speed 


per d 
Dos: 


• Aprire il C/64 e rimuovere dal suo zoc- 
colo la Rom indicata sul manuale. In 
alcuni esemplari di £J6 4 (pochi, per for- 
tuna) tale circuito integrato (C.L) risulta 
saldato sulla piastra e, di conseguenza, è 
necessario dissaldarlo per inserire, al suo 
posto, lo zoccolo. 

• Inserire la * t veeehia” Rom sullo zocco- 
lo vuoto della prima scheda aggiuntiva 
(che contiene la nuova Rom alteniativa) 
e installare quest 'ultima sullo zoccolo la- 
sciato vuoto precedentemente. Collega- 

la alla scheda è un deviatore che coese tv 

■« 

tiri, a seconda della sua posizione, di 
utilizzare il nuovo CI. (Speed Dos) op- 
pure quello “vecchio" che farà funziona- 
re il C/64 nel “solito" modo. La compati- 
bilità col software precedente è quindi 
totale dato che il nuovo CJ. può essere 
totalmente escluso e sostituito dall'origi- 
nale agendo semplicemente sul 
deviatore, 

a Aprire il drive 1541, rimuovete dal suo 
alloggiamento il circuito integrato indi- 
cato sul manuale ed inserirlo sulla secon- 
da scheda aggiuntiva, contenente un'e- 
stremità del cavo parallelo. Inserire la 
scheda nell 'alloggiamento lasciato vuoto 
e richiudere il drive. 


Commodore Computer Club -35 




HARDWARE 



Le prove effettuate 

Anzitutto è stata provata la compatibi- 
lità hardware sia con programmi profes- 
sionali (Word Pro, Data Base, Spread 
Sheet) che con videogiochi sofisticati già 
in nostro possesso da vecchia data (alta 
risoluzione, sintesi vocale, multi sprrte 
eccetera): tutto ha funzionato 

regolarmente. 

Passati in modo Speed Dos abbiamo 


mi di prima (oltre, ovviamente, al loro 
corretto funzionamento). 

Abbiamo notato, soprattutto, la profon- 
da differenza esìstente tra lo Speed Dos e 
le solite cartucce che consentono dì au- 
mentare la velocità» 

Queste, in effetti, consentono di au- 
mentare la velocità di caricamento dei 
programmi ma, una volta “lanciati", la 
velocità di trasferirne 1*0 dei dati elabo- 
rali rimaneva la stessa» 

Il vantaggio di caricare ad alta velocità 
un programma di Word processor, come 
TEasy script, veniva annullalo, insam- 
ma, dalla impossibilità di “scaricare” su 
disco, alla stessa velocità, ì testi 
elaborati» 

Dalla tabella pubblicata si può invece 
notare che con lo Speed Dos la velocità 
rimane aha anche nella gestione dei fife 
sequenziali da e verso disco» 


La ntMsfang velocità 


constatato con piacere la maggiore velo- 
cità di caricamento degli stessi program- 

La ditta Niwa Soft inserisce nella con- 

H 


T E 

H P 0 C ascondi 1 

N. block 

Norm. 

Speed 

Hi-Speed 



Dos 

Dos 

105 prò 

97 

27 

4 

Cloadl 




105 prò 

/ 

55 

/ 

(bivi) 




202 prò 

127 

•*9 

5 

Cloadl 




202 prò 

/ 

49 

/ 

C sa vai 




95 seq 

63 

24 

/ 

Cinedi 




95 st»q 

90 

55 

/ 

Caavel 






lezione un programma speciale che, uti- 
lizzato con lo Speed Dos, conserte di 
aumentare ulteriormente La già alta velo- 
cità di trasferimento dati. 

Tale software, formattando un disco 
in modo diverso dal consueto, conserte 
di caricare un programma di 202 blocchi 
(vedi tabella) in soli cinque secondi! Te- 
nendo conto che gran parte di questo 
tempo è dedicato, dal sistema, per eleva- 
re la velocità del disco dalla immobilità al 
giusto livello, si può immaginare facil- 
mente con quale ìmpeto vengono sca- 
gliati i dati sulla superficie magnetica» 

Questo sistema dì formattazione con- 
sente di realizzare una biblioteca di 
software Hi — Speed da rtifiezaie con 
grande semplicità. 

Concludiamo precisando che pro- 
grammi registrati nel modo descritto 
possono esser letti solo da sistemi C /64e 
1541 muniti di Spéed Dos a causa, ap- 
punto, della formattazione speciale cui si 
è accennato. 

Qualsiasi altro disco può invece esser 
letto e scritto, ad alta velocità, con la 
certezza di utilizzarlo anche su sistemi 
“normali”. 



3fi - Commodore Computer Club 





l’utente 


N ozio"* pet 

soia opera^H 


H p^framma o ___ 

Commodore 


vostro 


[ 55 programmi contenuti nell'opera di ba r ,e sono 
stati scritti m mie rosoti BASIC. Delle indicazioni ri- 
ferite ai particolari specifici delle attrezzature Vi 
consentono un adeguamento senza problemi an- 
che ai Vostro apparecchio, riceverete fra I altro 
» Programmi matematici, inoltre la Regola di 
Crome r. operazioni a matrici, statistica, calcolo dif- 
ferenziate ed integrale 

• Programmi economici cqme la contabilità 
del valere in contanti piano di ammortamento di 
un mutuo, cambio di valuta etc. 

• Programmi tecnici, i; er esempio tal iella con- 
sumo benzina, tabella valori por circuiti digitali, 

• Programmi generici come aiuti di addestra- 
mento professionale, controllo della salute e 
giochi. 

Per ogni programma riceverete una discre- 
zione dei problemi, il modo dì procedere, un 
programma strutturale un listing e test di 
prova. 

Questa offerta di programmi viene ampliata 
con supplementi che escono ogni quattro mesi, 
per adeguarsi continuamente alla ultime novità 
nel settore dei MC. 

• e peri principianti: Tutto sulla program 
mozione. 

La parte teoretica Vi guiderà partendo dal giusto 
modo di procedere nella introduzione delle righe 
di programma, le costanti e le variabili fino ai co- 
mandi ed alle funzione 

Richiedeteci ancora oggi: 

Attuali programmi in BASIC 

Un raccoglitore robusto di plastica informato DIN 
A4, opera di base ca. 550 pagine. Numero d'ordi 
nazione 1300 - Prezzo L. 68 OOO. 

Riceverete i supplementi di completamento ogni 
2 3 mesi con ca, 120 pagine al prezzo di L. 250 
per pagina. 


Questo manuale sviluppato m particolar modo 
perii Commodore 64/128 Vi offri?: 

» Programmi funzionali al 100% e routine 
ausiliari! per I economia, la tecnica, la grafica ed 
il suono, fra f altro nella parte 9 la SUPERMQU5E 
nonché programmi adatti per l'analisi dei dati, 
l'elaborazione dei testi e l'amministrazione di un 
archivio. 

« Corsi di programmazione riferiti at calcola 
toro per i linguaggi superiori della program- 
mazione ed Assembler 

Doperà di base metterà fra l'altro a Vostro dispo- 
sizione un assemblatore affermato, un disassem- 
blatore ed un monitor linguaggio macchina 

• Descrizioni dettagliate dei sistemi r 
descrizione particolareggiata dei processori (co- 
processori), per sound e video chips nonché 
moduli di memoria del Vostro modello 64 (128) 

• Ampliamenti ed accessori interessanti a 
parte ? Vi mostra come potete completare 4 
Vostro 64 con CPM e come Vi potete creare con il 
software da moduli E PROM un nuovo sistema ope 
rat ivo. 

■ Istruzioni compiete di costruzione Com- 
prese te platine fra altro per un collegamento 
completo di un lEC (compreso software) e di una 
penna ottica. 

• Supplementi all'opera di base: 

con nuove routine utili e programmi, corsi intensi- 
vi dF linguaggi come LOGO. PASCAL e FORTH, nuo- 
vi recenti sviluppi e tante altre c ose ancora. 

Richiedeteci ancora oggi: 

Nuove possibilità’ con il Commodore 
C 64/128 

Uri roc coglitore robusto ad anelli formato DIN A4, 
opera di base con ca 400 pagine, numero 
dominazione 2000- al prezzo dr L 68.000. 
Riceverete supplementi di completamento 
Qgnr 2-3 mesi con ca. 120 pagine, al prezzo per 
pagina di L. 250. 


Lattuale tecnica de» microcompufer Vi offre: 

* Una documentazione esauriente del hard- 
ware con descrizione dettagliata 

dei processori 8085. 8086, 6800, 68000, 
6502/6510 Z 80 1 8000 cori gli si he mi di collega- 
mento e comandi, la memoria centrale, in piu il 
RAM statico e dinamico, sempre con schemi di 
collegamento ed estratti delie tabelle dati delle 
memor e principali (ROM, PROM.. EFROM eie.) 
delle interfaccia (RS 232/V24, Centronics Paralle- 
lo, IEC Ri JS etc ) 

dellequip a guarnente di input (tastiere, joystick, 
penne ottiche etc \ 

• Un corso dettagliato MC, he sull'esempio 
concreto de; rrner computer Vi aiuta a compre ri- 
dere il linguaggio Assembler itw di comandi, i tip* 
di i nd i r t za m ente, gl a iut* d 1 p r g r a m ma zione e ie 
correlazioni. 

■ Istruzioni di montaggio compresi i layouts 
delle platine eli :>-r appare' chi supplementari 
per ur- computer rr copiatine come per esempio 
una platina a l bus ed una platina di Input/output 

• Un corso completo di linguaggio di prò 
gemmazione BASIC 

■ Programmi applicativi simili e problema 
hi [lanieri. Quicksort, smistamento binano. 
Renumber 64. interfaccia Centronics per C 64 

* Tabelle dati con indicazioni abbreviale per i mi- 
croprocessori. circuiti integrati, ciré urti periferici 

4 Edizioni supplementari all'opera eh base 
con nuovi programmi, corsi dr linguaggi (fra l'altro 
PASCAL, ASSEMBLER) istruzioni di costruzione 
per espansioni di memoria, interfaccia, panorami- 
che di mercato e indi' azioni attuati 


tecnica 

computer 


Attuali programmi 


i Nuove p 


64/128 


i r iT*r »n S«_-JÙ 3 E -3 : flo 

f. 30L+S U*ro 


A Si, speditemi subito 

□ Attuai» tecnica di microcomputer il imo indirizzo 
Un raccoglitore robusto ift p4lit artificia- 
le, i ormato DIN A4 ca, 450 pag™ *- u ; — 

numero dominazione 1400 - Prezzo Nome 

L 68 000 

n Nuove possibilità' con il Commodore 
C 64/128 t Un raccoglitore robusto ad 

anelli formato DIN A4, opera di base con 

ca 400 pagine, numero d'ordinazione ^ 

2000 - al prezzo di L 68 OOO 

n Attuali programmi in BASIC - Un rat flj 

coglitore robusto di plastica in formato 
DIN A4, opera di base ca, 550 pàgine. 

Numero d'ord .inazione 1300 Prezzo L. Pago (indora con 

O assegno non frasi 

Mi inwereteog™2-3m«<isupp1emertiair- Edizioni WEKA 
opera di base di ca. 120 pagine per volta, ai , p_ cfal( . 

pretto per pagana di L 250 (posso disdire 3 allego Vaglia Postale 

l' abbonamento in qual siasi momento, senza , Q pagherò quando nce 
indicarne motivi). 


Richiedeteci ancora oggi: 
Attuale tecnica di microcomputer 

Un raccoglitore robusto in pelle artificiale, forma 
to DIN A4 ca 45( ) i igme, numero d’ordinazione 
1400 - Prezzo L 68 OGQ. - Ogni 2-3 mesi rice- 
verete un volume supplementare di complotta' 
mente all'opera di base con ca. 120 pagine al 
prezzo di pagina di L. 250. 


EDIZIONI WEKA 

s.r.L 

Via Don Carlo 
Gnocchi 7 
20148 Milano 


GMAHZU 

• a r- ‘j i. ni'fW’ji ■ y-v:'MC ■wv — •*••• ->• 

r.M «i'r j! g.-.Ji'H. $nj-. 1 ’ >«#[ f r . f .fni' *.«. Je- -i> ' -l<* 

;-ru 1-- ffi( I t:l *n ■ I 1 '*► 



QUALSIASI COMPUTER 


Discorso 


Un prontuario di frasi formate da parti 
interscambiabili, utili per parlare senza 

dir ... nulla 











lece un programma talmente sempli- 
ce che non ha certo bisogno di essere 
commentato nei dettagli. 

Si basa sull’uso intensivo delTiitru- 
rione RMD (1) che assegna un valore 
casuale alla variatale "I", in funzione 


della quale sarà visualizzata una frase 
costruita con i ** pezzi*' contenuti nei vet- 
tori stringa AS t BS, C$, D$ t ES. 

Qualunque frase ottenuta, anche se a 
prima vista potrebbe avere un significa- 
to, in realtà non vorrà dire assolutamen- 


te nulla. 

Divenitevi a modificare i spezzi" 
frasi o ad aggiungerne altri: chissà c 
non scopriate in voi una vena orato- 
ria»» 


10 

REM ****•<•**•+****•** 

310 

£0 

REM * QUALSIASI * 

3E0 

30 

REM * COMMODORE * 

330 

40 

REM * * 

340 

50 

REM DISCORSO! 

350 

50 

REM * * 

3S0 

70 

B0 

REM *C MI CHELE MAGGI 3* 

REM * * 

370 

S0 

REM ••***••****•*•**• 

3B0 

100 

110 

• 

REM SOGGETTO 

390 

1£0 

130 

t 

A* C 1 3 - "LA RI CONUERS IONE', " 

400 

140 

ASC£3-"L’ ATTEGGI AMENTO INDI 
UI DUALI STA, " 

410 

150 

ASC33-" IL QUALUNQUISMO SURO 
GRATI CO," 

4£0 

430 

1E0 

170 

1B0 

A$C43-”L* INDUSTRI ALI ZZAZION 

E PRECOSTITUITA, " 

ASC53-"LA COMPONENTE RI FORM 

ISTA, ” 

# 

* 

440 

450 

450 

1S0 

£00 

REM — GERUNDIO — 

4 

• 

470 

£10 

BSC13-”EUIDENZIANDO ASPETTI 
NUOUI, " 

480 

££0 

8S C £ 3 - "FUNGENDO DA CATAL1ZZ 
ATORE, ” 

490 

£30 

BSC33-" ALIMENTANDO UNA POLI 
TICA DI ASPETTATIUE, ” 

500 

CI 

:r 

(U 

BSC 4) -"RISCOPRENDO UECCHIE 
PROBLEMATICHE," 

S10 

SE0 

£50 

BS ( 5 ) - "ALTER ANDO I MODELLI 
PRECEDENTI, " 

530 

540 

£50 

£70 

* 

REM -- UERBO -- 

550 

£B0 

9- 

4 

SS0 

£30 

CSC1 3-"SI PROPONE DI ATTUAR 
E" 

570 

5S0 

300 

CSC £3 -“TENDE A REALIZZARE" 

590 


CSC 33 
CSC43 


"AUSPICA” 

"PERSEGUE" 

"STinQLA" 


REM — CCinPU OGGETTO — 


OSCI 3 -"UNA COMPLETA DIPENDE 
NZA INTERSETTORIALE” 
DSC£3-"UNA RISTRUTTURAZIONE 
RADICALE” 

D$C33-”UN POTENZIAMENTO STR 
UTTURALE" 

□SC43-"UN MIGLIO R AMENTO A L 
I DELLO DI SETTORE" 

DSC 5 3- "UN RINNOUAMENTO DI C 

ARATTERE GENERALE" 

* 

REM — FINALE — 

a 

ESCI 3- "ASSI CURANDONE LA BUG 
NA RIUSCITA." 

ESC £3“ "PER IL BENESSERE COL 
LETTIUQ. “ 

ESC33-”FER LA RISOLUZIONE D 
I OGNI CQNTRQUERSI A, ’’ 

ES C 43” ”REAL I ZZANDO IL PROSE 
ITO INIZIALE." 

ESC 53- "POTENZI ANDO LE INFRA 
STRUTTURRE . ■ 

PRINTCHRSC1473 : S05UB 530 : PR 
INTASC I 3 

GOSUB 590 ; PR I NTBS C 1 3 
GOSUB 5S0 : PRINTCSt I 3 
GOSUB 5B0 : PRINTDSC I 3 
GOSUB 530 : PR I NTES C I 3 
PRINT: FRINÌ: PRINT : PRINT"ANC 
ORA7CS/N3 " 

GET ASsIF A$- M ” THEN 5G0 
IF ASO "S" THEN END 
GOTO 500 

I-INTCRNDC 1 3*5+1 3 s RETURN 


CoDrrxxfcve Computar Chiù - 39 


=3 £ 



1/ UTILE 


QUALSIASI COMPUTER 


Nuovo Sistema 




Dopo il successo dell'Enciclopedia di 
routine in Basic (iniziata col N.24 di C C.C.), 




in data più recente, ecco a voi ... 


di Alessandro de Simone 


otevamo fame a meno? Come era 
possibile interrompere un discorso così 
proficuo, soprattutto in seguito alFìnoo- 
raggìamento e alle sollecitazioni dei no- 
stri lettori? Iniziamo pertanto, a partire 
da questo numero, una nuova “sezione" 
dedicata sia ai principianti sia a coloro 
che ritengono di conoscere il Commodo- 
re come le proprie tasche (!). 

I primi, con un minimo di buona vo- 
lontà, potranno utilizzare le simpatiche 
routine pubblicate anche senza sapere 
minimamente come funzionano: do- 
vranno limitarsi a digitarle e a 
lanciarle”. 

Siamo comunque sicuri che, prima o 


poi, verranno contagiati dal meraviglio- 
so Virus del Linguaggio Macchina. 

Gli altri, gli esperti, avranno a disposi- 
zione una stupenda palestra in cui eserci- 
tarsi e scoprire che, in fondo, conoscere 
il computer senza applicare F esperienza 
acquisita, è come avere un’automobile in 
garage e non usarla. 

n Nuovo Sistema 

Abbiamo più volte detto che un qual- 
siasi computer altro non è se non un in- 
sieme di mini-istruzioni scritte secondo 
un linguaggio, il Linguaggio Macchina 


40 - Commodore Computer Club 





















L’ UTILE 


appunto, che può esser ben compreso 
solo dal microprocessore (detto anche 
micro, per brevità) installato nel compu- 
ter stesso. 

11 Basic (o un altro linguaggio qualsia- 
si) ed il sistema operativo (S.O. ), devono 
esser considerati solo dei "filtri” interpo- 
sti tra Futilizzatore ed il mieto al solo 
scopo di rendere semplicissime operazio- 
ni altrimenti mostruosamente comples- 
se. 

E* difficile immaginare il tempo dedi- 
cato alla progettazione delle ROM del 
computer per fare in modo che voi, in 
seguito alla semplice battitura di alcuni 
tasti, possiate pervenire rapidamente a 
precisi risultati. 

Tanto per fare un esempio, lo studio 
del “percorso’ 1 seguito dal micio, dal 
momento della digitazione del comando 
PRINT'TIPPO” alla visualizzazione 
della parola PIPPO è straordinariamente 
lungo ed ha richiesto, ai tecnici della 
Commodore, numerose ore di lavoro, 
tentativi, prove e ottimizzazioni successi- 
ve. E tutto questo per rendere Fuso della 
tastiera semplice al punto da poter essere 
usata anche da un bambino. 

Se, dunque, un’istruzione Basic* un 
comando, oppure un’operazione qual- 
siasi sono, in fin dei conti, un aggregato 
di istruzioni in Linguaggio Macchina, chi 
cì impedisce di aggiungere altri codici 
macchina per arricchire ìe prestazioni del 
nostro personal? 

L’uovo di Colombo 

L'idea che stiamo per presentare può 
far sorridere chi il computer lo possiede 
da molto tempo. Si sa benissimo che spe- 
cifici programmi di utilità, in grado di 
aggiungere nuovi, potenti istruzioni al 
Basic standard Commodore, sono in cir- 
colazione da moltissimo tempo e non 
rappresentano una novità per nessuno. 

Ricordiamo, tra gli altri, il Simon’s Ba- 
sic, il Tool, il Basic 4.0 e perfino le nostre 
stesse routine grafiche pubblicate tempo 
fa. 

Purtroppo, però, tali programmi de- 
vono esser utilizzati globalmente e non è 


possibile, ad esempio, servirsi contem- 
poraneamente di un comando del Si- 
mon ’s Basic e di un’istruzione del Basic 
4.0. 

li motivo è intuibile: la particolare ar- 
chitettura delle utility possono esser 
spesso in contrasto tra loro, E tutto que- 
sto, ovviamente, a parte considerazioni 
dì ordine pratico come la rimozione delle 
protezioni dei programmi stessi, il loro 
disassemblaggio per individuare le “zo- 
ne” relative ai comandi desiderati, la ri- 
locazione e la fusione degli stessi in un 
funico blocco. 

Con la sezione NUOVO SISTEMA 
intendiamo proporre, appunto» la crea- 
zione di routine in L*M. tali che possano 
esser utilizzate raggruppandole, magari, 
in più versioni fatte su misura per l’uten- 
te e le varie occasioni. 

Ogni routine pubblicata in queste pa- 
gine, insemina» dovrà soddisfare alcune 
regole inevitabilmente tassative. Queste 
riguardano sia !a sezione Basic (digita- 
zione dalla rivista) sia la sezione più pro- 
priamente in L + M. 

Sezione Bask 

* Se risulta necessario , sì utiliza, dappri- 
ma, il programma che limita il Top della 
memoria RAM disponibile (programma 
Top Memo ). 

* Le Routine LM vanno caricate grazie al 
breve programma standard (denominato, 
appunto " Caricatore ”) che contiene tuffi 
gli accorgimenti utili per allocare corretta- 
mente i codici macchina delle singole rou- 
tine. 

* In seguito all allocazione, è possìbile 
registrare la zona RAM in cui risiede la 
routine LM, grazie ad un accorgimento 
presente nello stesso " Caricatore * r oppure 
mediante F apposito programma “Save 
Zona RAM*'. 

Sezione READ,,* DATA 

Tenendo conto di quanto detto nei 
punti precedenti, le righe Basic (da ag- 
giungere al "Caricatole”) che contengo- 


no la sezione LM vera e propria, devono 
possedere ìe seguenti caratteristiche: 

• La numerazione inizia coi valore 1000. 
m La prima riga ( 1000) deve avere, come 
prima istruzione, la cancellazione dello 
schermo: PRINTCHR$(147). 

• Le righe che seguono la N- 1000 devono 
contenere , sotto forma dì PRINT. tutte le 
istruzioni idonee al corretto utilizzo della 
routine LM 

• La riga successiva all ultimo comando 
PRINT delle istruzioni precedenti è costi- 
tuita dai F unico comando RETURN, 

• Seguono, quindi, le righe che, grazie ad 
un* istruzione DATA , contengono i codi- 
ci macchina decimali relativi alla roteine 
LM. 

• L'ultima riga DATA deve esser costitui- 
ta da due soli valori: — / ( che ha il compi- 
to di indicare al programma “Caricatore" 
la fine dei codici) ed il valore Cheksum 
(che si incarica di controllare t esatta tra- 
scrizione della routine). 

Sezione L.M, 

« Le routine devono esser rilecchili, nel 
senso che Putente può decìdere la zona 
RAM più idonea alla loro allocazione, 
m Devono, di conseguenza * funzionare 
perfettamente in modo del tutto indipen- 
dente dalla loro collocazione fisica all'in- 
terno della memoria RAM scelta dalPu- 
tenie * 

• Devono essere, per quanto possi bike 
indipendenti da routine del Sistema Ope- 
rativo e garantire r comunque f un corretto 
funzionamento nel caso sia indispensabi- 
le riferirsi al S.O. 

« Non possono far ricorso a tecniche che 
alterino il vettore dell Interrupt. 

• Non possono far ricorso a tecniche che 
alterino il contenuto dello stock. 

• Non possono far ricorso a tecniche che 
alterino puntatori vitali del Basic. 

• Non devono richiedere alterazioni di 
puntatori o di vettori per il loro carica- 
mento, 

• La prima istruzione della routine deve 
essere quella cui far riferimento con la 
SYS . 


42 - Commodore Computer Club 


... e non indurci 
nei Syntax Error 

e liberaci dagli 
Outof Data... 


Come interpretare correttamente 
afcuni messaggi di errore emessi 
dal vostro Commodore, e per 
non arrabbiarsi mai più. 


Commodore Computer C-ub - 1 





Avvertenza 


N umerose lettere di nuovi lettori, che si dichiarano in preda al 
panico per i continui errori segnalati dal proprio Personal, ci 
hanno indotto a scrivere un intero articolo che accomunasse le 
spiegazioni necessarie per venirne a capo. 

Descriveremo nei minimi dettagli, come al solito, i casi piu 
frequenti in modo da rendere chiaro il motivo della generazione 
dei messaggi stessi da parte del calcolatore. 

E' doveroso precisare, da parte nostra, che una parte dei 
presente scritto è sostanzialmente identica all 'articolo "Gli errori 
di Sintassi”, pubblicato, in analoghe circostanze, sul N.18 di 
C.C.C. La decisione di riproporlo è stata presa per conferire la 
dovuta completezza ad un argomento ritenuto basilare. 

Nel presente testo, per motivi di brevità, si farà ricorso alla 
simbologia qui di seguito indicata: 


• Tasto Crsr Destra ( = premere il tasto che consente di sposta- 
re il cursore a destra^ 

• fasto Crsr Sinistra: Tasto Crsr Alto : Tasto Crsr Basso (di 
analogo significato) 

• ( R): Premere il tasto Return 

Attenzione, inoltre, a non confondere il tasto zero “0” col 
carattere alfabetico "O". 


Due errori molto, molto comuni 


Siete pronti? Bene, accendete il computer e incominciamo a. 
sbagliare. 

Stiamo parlando sul seno nulla è più proficuo, nell’uso di un 


tt - Commodore Computer Club 


calcolatore, che sbagliare a bella posta per individuare più facil- 
mente, in futuro, il motivo delle segnalazioni d'errore 

Se avete appena acceso il vostro Commodore (qualunque 
esso sìa) dovreste veder lampeggiare il cursore al di sotto della 
parola READY. Digitate la seguente istruzione' 

PRINT 2 -*-2 (R) 

Se avete fatto esattamente come vi abbiamo suggerito, do- 
vrebbe esser comparso il risultato detl operazione (4) ed il curso- 
re. che è riapparso di nuovo sotto la *‘R di READY, tornerà a 
lampeggiare. 

Ora seguite alla lettera queste fasi: 

• Premete una sola volta il tasto Ins/Del: Il cursore, in conse- 
guenza di ciò. si sposta all'estrema destra del rigo su cui si trova 
il messaggio "Ready ". 

• Premete una sola volta la barra spaziatrice. A questo punto il 
cursore è tornato nello stesso punto dì prima (al di sotto di 
""Ready"). 

m Digitate lo stesso ordine di prima (PRINT2 + 2 ) e premete il 
tasto Return. .. Sorpresa! Viene emesso il messaggio Out of 
Data Error Che diavolo è successo? 

Per spiegarci questo strano fenomeno, dobbiamo risalire a! 
modo in cui viene gestito, nei computer Commodore, il rigo dei 
video su cui digitiamo i dati che. successivamente, devono esser 
elaborati dal computer, 

Prendete un qualsiasi listato Basic, caricatelo sul vostro Com- 
modore digitate List (R) ed attendete che compaia l'ultima riga 
Se siamo fortunati (!). il listato dovrebbe comparire assortito 
righe di comandi Basic che occupano un solo rigo di schermo 
dovrebbero coesistere con righe Baste che ne occupano due 

Se. purtroppo, il programma che avete cancato possiede solo 
righe Basic costituiìe da un solo rigo di video (o soltanto righe 
Basic di due righe video), caricate altri programmi in vostro pos- 

fitte* Chih * Ut 



sesso Oppure digitatene uno costituito da linee contenenti soltan- 
to istruzioni REM seguite da tanti caratteri quanti ne bastano per 
realizzare righe Basic lunghe una sola oppure due righe di video. 

Supponendo, dunque, che sul vostro schermo sia visualizzato 
un programma '‘assortito", premete (imprimendo una sola pres- 
sione alla volta) il tasto che comanda il movimento del cursore in 
basso. Dovreste riuscire a notare che, (a patto che lo premiate 
per un solo breve istante alla volta) quando il cursore giunge in 
fondo al video, alla successiva pressione del tasto Crsr una parte 
del listato scompare verso Tatto a causa del noto fenomeno dello 
“Scrolling" ( = scorrimento). 

Ripetendo più volte l'esperimento noterete che lo Scrolling è di 
una sola riga se, prima della pressione del tasto Crsr, sulla 
sommità del video è presente una riga Basic lunga un solo rigo di 
schermo. 

li 

Al contrario lo scrolling risulterà di due righe se la prima riga 
Basic visibile in alto sullo schermo è costituita da due righe video. 

In altre parole lo scrolling viene effettuato in modo tale da 
evitare la permanenza di “mezze” righe di listato Basic. Ciò vuol 
dire che siamo in presenza di un sistema di scorrimento intelli- 
gente, capace, cioè, di riconoscere la lunghezza e il "tipo" di ciò 
che viene visualizzato sullo schermo in quel particolare 
momento. 

Per ribadire il concetto, effettuate il seguente esperimento: 

• Spegnere e riaccendete il computer { oppure servitevi del 
tasto di Reset, se lo possedete), 

• Digitate il seguente microprogramma ricordando di premere il 
tasto Return al fermine della digitazione di ciascuna delle due 
righe: 

100 REM RIGA UNO 
110 REM RIGA DUE 

m Posizionate il cursore (mediante i tasti Shift e Crsr Destra) sul 
carattere "O" della parola "UNO" della riga 100. 


ÌV ■ Commodore Computi'! Club 



• Tenente premuto il tasto Crsr Destra: Noterete che il cursore, 
giunto all'estremità della riga Basic (che coincide, in questo 
caso, con la riga video su cui è posizionato), riappare sul rigo in 
basso che. lampeggiando, supererà. Sembra che non sia suc- 
cesso nulla e, in effetti, è proprio cosi,,. 

• Posizionate ora il cursore nuovamente alla destra della "O" di 
"UNO" di riga 100 e premete , stavolta, la barra spaziatrice 
invece del tasto Crsr Destra Noterete che il cursore, giunto 
all'estrema destra del rigo, passerà, come prima, ai rigo succes- 
sivo ma, fatto impalante, la riga 1 10 viene spostata in basso di 
una posizione! 

Chi possiede il C-16 si accorgerà che, addirittura, non riuscirà 
mai a raggiungere la riga 1 10 tenendo premuta la barra, perchè 
tutte le volte che il cursore raggiunge ìi bordo destro del vìdeo, la 
riga 1 10 viene spostata in basso di una riga. 

Coi C-64 (e col Vic-20), invece, lo scroti avviene solo una volta: 
tenendo premuta la barra spaziatrice, prima o poi riuscirete a 
raggiungere la riga Basic successiva. 

Che cosa c’entra tutto questo col punto dal quale eravamo 
partiti? 

E' giunto il momento di svelare il mistero. 

Quando, ai momento dell’accensione, compaiono i "soliti ' 
messaggi (Commodore... Basic... Bytesfree... eccetera), il com- 
puter non sa (nè può saperlo) il reale significato di ciò che è 
visualizzato sullo schermo in quel momento. 

‘ Egli’’ è fermamente convinto che ogni riga (oppure ' doppia' 
riga) del video rappresenti un gruppo di istruzioni da eseguire 
immediatamente oppure appartenga ad un programma Basic da 
memorizzare per future elaborazioni. 

Quando, dunque, posizionate il cursore alla destra della parola 
READY, e premiamo i! tasto Return, il computer è indotto ad 
elaborare ciò che è presente sul rigo La parola Ready viene però 
"interpretata" come "READ" “Y" e, dato che non vi sono istru- 


Commodore Computi Club - V 



zioni DATA, viene emesso ['idoneo messaggio "Out Ot Data 
Error". 

I risultati del primo esperimento suggerita (quello dei 
PRINT2 +- 2 . tanto per intenderci) sono ora facilmente com- 
prensibili: 

• Portandoci col cursore all'estremità del rigo contenente la 
paro/a READY, e premendo la barra spaziatrice, non facciamo 
altro che comunicare al computer l'intenzione di "legare" la riga 
video successiva alla precedente. Se, dunque . digitiamo a que- 
sto punto il comando PRINT2 +-2, e premiamo (R), il computer, 
poveretto, si vede costretto ad elaborare tutto ciò che ritiene 
costituisca la riga Basic su cui è posizionato il cursore al momen- 
to della pressione del tasto Return. Naturalmente, con questa 
convinzione, elaborerà per primo //comando “READ” “ Y " con te 
conseguenze già viste. 

La morale che si può trarre è la seguente: 

« Spostandosi col tasto cursore non si cambia la "sostanza 1 ' dei 
caratteri su cui ci spostiamo, 

• Premendo la barra spaziatrice si corre il rischio di "fondere 
più righe successive senza che noi ce ne accorgiamo. 


Un errore analogo al precedente 

Spesso molti lettori si ostinano a definire errati alcuni program- 
mi pubblicati perchè, secondo loro, vengono emessi Syntax Error 
durante l'elaborazione nonostante i listati siano trascritti fedel- 
mente dalla nostra rivista. 

Poiché (credeteci) controlliamo più volte i programmi, prima di 
pubblicarli, siamo rimasti per lungo tempo perplessi di fronte alle 
incrolìabiìi certezze dei... contestatori. 


Vt ■ Commodore Compì Ciuf? 



Finalmente, un bel giorno, venne a trovarci in Redazione un 
lettore munito di un nostro listato registrato (da lui) su nastro per 
dimostrarci che l’errore di sintassi c era, eccome. 

Naturalmente l'errore c era. ma era da attribuire ad una errata 
digitazione da parte dell’ostinato lettore. E veniamo al dunque 
cercando di spiegare in che modo è possibile generare errori 
inspiegabiii. 

• Spegnere e riaccendete il computer oppure premere il tasto di 
Reset. 

e Cancellate lo schermo (Shift e Clr/Home). 

• Digitate ALLA LETTERA la seguente riga (e NON premete il 
tasto Refurn finché non ve lo diciamo noi!) 

700 A=1 234567890:8 =12345678Q0:A$- 'PIPPO” 

Poiché è motto importante per la comprensione dell'errore che 
stiamo per commettere, precisiamo che il carattere “ 1 ” del nu- 
mero di riga i fi 00) deve essere il primo carattere della riga video. 
Vi deve essere un solo spazio tra il numero 100 e la definizione 
della variabile A =123 eccetera. Non vi deve essere alcuno 
spazio tra le assegnazioni successive. 

Se, insomma, avete fatto esattamente come vi abbiamo 
detto, a questo punto delle operazioni il cursore dovrebbe lam- 
peggiare sulla prima celia video posta al di sotto del carattere 
"1” del numero di riga 100. 

• Scrivete ora: 

110 PRiNT A,B,A$ 

e, finalmente, premete il tasto Return. 

• Cancellate lo schermo e digitate List (R). 

Il listato sembra costituito da due righe (100 e 110) ma. in 
effetti, rè costituito da un'unica riga dato che, giunti alla fine 
"logica” della riga 100, non avete premuto il tasto Return 
Il listato, cosi come appare sul video, sembra privo di difetti e ci 


C( f r ' " * i ’•> •' ’? f.- Ci.tr ryp i j f e ' ChtL' V •' ì 


aspetteremmo che, digitando RUN (R), compaiano i contenuti 
delle due variabili (A, B] ed il nome PIPPO, 

Col Run, a! contrario, viene visualizzato un dannato "Syntax 
Errar in 100". * 

Morale: 

Quando compare una segnalazione di errore di sintassi fo di 
altro tipo) riscontrata in una certa riga, "chiedete" il List relativo 
soltanto a quella riga e non ad un gruppo di linee (oppure, 
addirittura, all'intero listato). Se, infatti, nel caso appena esami 
nato digitate List 100 !R) dovreste accorgervi che qualcosa non 
va dato che voi chiedete una sola riga ed il computer (sembra) 
darvene due. 

Putroppo molti lettori, specie se principianti, digitano semplice- 
mente List (R) e, almeno nei casi come quelli visti, non riescono 
ad accorgersi che alcune linee visualizzate sono, in realtà, un'u- 
nica linea Basic. 

Ricordiamo che è possibile incorrere nell'errore descritto posi- 
zionandosi col cursore sull'ultimo carattere di una riga Basic e 
tentando di posizionarsi sui rigo successivo ricorrendo alla pres- 
sione delia barra spaziatrice, in questo caso, come abbiamo già 
visto all' inizio, provochiamo involontariamente la "fusione" di 
due righe. 

In conclusione: 

• Premete SEMPRE il tasto Return al termine di una riga Basic, 
anche se sembra che non ve ne s/a bisogno. 

• Se il computer segna/a un errore in una determinata linea, 
chiedete il listato relativo SOLTANTO alla linea segnalata in 
modo da evitare equivoci. 

• Se volete posizionarvi rapidamente all'inizio della riga suc- 
cessiva (senza alcuna altra conseguenza } premete insieme i 
tasti Shift e Return 

Ma ecco altre cause d’errori 


Vi Ih Comm otìc re ■ Computer Cinti 



che possano generare uno degli errori più comuni programman- 
do in Basic, 


L’errore di Sintassi 


L'errore più comune che il principiante commette è sicuramen- 
te l'errore di sintassi: SYNTAX ERROR. 

a 

E’ bene rendersi conto che il Basic è un linguaggio del tutto 
simile al nostro almeno per ciò che riguarda le regole di sintassi, 
di grammatica eccetera. La differenza consiste nel fatto che il 
computer è rigoroso, spietato e pignolo Basta un minimo errore 
perchè il calcolatore si blocchi irrimediabilmente, tl cervello uma- 
no, e la nostra educazione, consentono di comprendere i mes- 
saggi che ci rivolgono pur se contengono errori: 

... " Vadi a destra e. al primo semaforo, vadi sempre dritto"... 

... 'Se avrei fatto una dormita, ora fossi più riposato’’ 

...ed altre, sono frasi che abbiamo spesso sentito e. nonostante 
tutto, perfettamente compreso. Un computer che sentisse parlare 
come negli esempi riportati, si scandalizzerebbe immediatamen- 
te e comunicherebbe di aver incontrato difficoltà di comprensio- 
ne. Purtroppo il calcolatore emette un semplice messaggio 
(SYNTAX ERROR IN XXX) senza indicare esattamente il posto 
della riga Basic in cui ha riscontrato l'errore segnalato nè, tanto- 
meno, il motivo. 

Chi possiede un C- 16 oppure un Plus/4, beato lui. ha a disposi- 
zione il tasto Help che fa lampeggiare la “zona" interessata 
dall’errore. 

Vedremo ora in che modo rintracciarlo all'interno di una linea di 
programma. Continueremo a commettere errori a bella posta e 
ad effettuare le dovute correzioni fino a che tutto risulti in ordine. 
Ricorreremo, còme di consueto, a numerosi esempi che. meglio 
di un qualsiasi fiume di parole, renderanno chiaro il concetto di 


Commodore Computer - tx 



errore di sintassi. 

Digitate il seguente programma dopo aver spento e riacceso il 
computer {e non dimenticate il tasto Return al termine di ciascuna 

riga...): 

100 A=123; B=A*C: C=10 
1 10 PRINT;A PRINT;B PRINT:C 

Approfitteremo di questo listato anche per evidenziare in se- 
guito alcuni errori di logica. Il problema, che dovrebbe esser 
risolto dal programma proposto, consìste nell’eseguire un pro- 
dotto tra due valori (“A" e ”C") e visualizzarlo. C’è da ricordare 
che il calcolatore esegue le istruzioni l una dopo l'altra a comin- 
ciare dalla prima incontrata. Nel nostro caso particolare non 
appena digitiamo RUN (ed il tasto Return), il computer esamina il 
contenuto della riga con numerazione più bassa (100 nel nostro 
caso). La prima istruzione di tale riga associa alia variabile "A'’ il 
valore 123. Subito dopo (notare la presenza del carattere di 
doppio punto che separa le due istruzioni), si chiede di eseguire il 
prodotto di A 'Cedi associarlo alla variabile B. Benché l’operazio- 
ne sia corretta, il programma non soddisfa il problema perchè, a 
questo punto delle operazioni, la variabile “C” contiene il valore 
nullo (0) dato che ogni volta che si digita RUN tutte le variabili 
sono automaticamente poste a zero. A nulla vale il fatto che la 
terza istruzione di riga 100 ponga C=10. 

Tentando di far partire il programma, otteniamo un Syntax error 
in 1 10 (che d ora in poi indicheremo semplicemente con S.E.) Ciò 
è dovuto al fatto che tra le istruzioni PRINT è indispensabile 
inserire il carattere di doppio punto (;). 

Come si può notare, il messaggio visualizzato dal computer 
ìndica anche la riga del programma Basic in cui è stato riscontrato 
l’errore. 

A questo punto chiedete il listato (List 1 10) e, servendovi dei 
tasti di controllo, ‘'salite” col cursore, posizioniatelo nei posti 


X - Commodore Computer Chi) 



appropriati e battete il carattere di doppio punto ove necessario. 
Non dimenticate di battere it tasto Return alla fine dell'operazione 
e. per maggior sicurezza, chiedete nuovamente il listato per 
verificare che il calcolatore abbia accettato le modifiche imposte 

Digitando RUN non dovrebbero, ora, esservi inconvenienti di 
sorta ad eccezione dell'errore '‘logico”, il vostro Commodore, 
infatti, stamperà, l’uno sotto l’altro, i valori 123, 0, 10 mentre il 
problema richiedeva come soluzione i valori 123. 1230, 10. 

Per ottenere una tale risposta è necessario modificare la riga 
100 come segue: 

100 A = 123:C = 10:B=A'B 


Considerazioni suiresperienza 
effettuata 


• Tra due istruzioni è indispensabile inserire il carattere doppio 
punto (:) 

• Il computer non può in alcun modo individuare errori logici di 
programmazione. L unico modo per individuare errori di questo 
tipo consiste nel far “ girare ” il programma e nel verificare i 
risultati con altri già noti. 

• Tra due caratteri di doppio punto (:) deve figurare un'istruzio- 
ne (oppure un comando ) purché COMPLETI. 

Esempio: 

iOQrPRiNT A.B,C::PRINT A'B’C 
(corretto) 

1 00:PRINT:A:8:C:PRINT:A‘B: ’C 
(ERRATO) 

• Il numero di doppi punti tra due istruzioni successive non 
costituisce alcun... pencolo come pure il numero di spazi tra due 
istruzioni o tré gli elementi di una stessa istruzione. Provate a 
modificare il programma precedente come segue: 


Commodore i . irnpi.il?: ChJO ' • 



100::: A - 1 23::: C =10 :: B =A*C 

L'unica differenza consiste nei fatto che il programma occupa 
più spazio in memoria e che il listato è di più difficile lettura. 

L’uso improprio del doppio punto però , in alcuni casi, facilita la 
lettura del listato pur se a prezzo di una maggior occupazione di 
memoria. La stessa riga di prima, ad esempio, si può spostare 
sulla destra (notare il doppio punto subito dopo la numerazione 
di riga): 

1 00: A=1 23: C=lO:8=A t B 

Tale comodità può esser apprezzata maggiormente nel caso 
in cui si disponga di una stampante. 


Un altro errore logico 

Rimanendo fermi sullo stesso esempio visto all’inizio, cerche- 
remo ora di rintracciare altri errori “logici' che nessun computer è 
in grado di individuare. In alcuni casi non è obbligatorio i uso del 
punto e virgola. Modificate ad esempio la riga 1 10 come segue: 
110 PRINT A: PRINT B: PRINT;C 
Il risultato che otterrete digitando RUN {e Return) dimostra che: 

• Dopo la parola-comando PRINT non è indispensabile il carat- 
tere di punto e virgola . 

• Se non si inserisce quest'ultimo carattere, il computer inter- 
preta PRINT A come se fosse presente il punto e virgola 
(PRINT: A). 

• Non è indispensabile inserire uno spazio tra l’istruzione e la 
virgola (PRINT A produce lo stesso effetto di PRINT A). 

Ciò premesso sembrerebbe che il punto e virgola sia un 
carattere superfluo. Vedremo ora perchè non è cosi 

Modifichiamo ora il programma come segue: 

100 A=123:C=10:B=A*B 
110 PRINT A::PR(NT C;:PRINT B 


X fi Commodore Computer Qui) 



Grazie alfa presenza dei caratteri di punto e virgola otterremo, 
dopo fi RUN. i tre valori affiancati anziché l'uno sotto ! altro, Allo 
scopo di '‘risparmiare'’ caratteri sul listato, possiamo modificare 
la riga 1 1 0 come segue: 

1 10 PRINT A:C;B 

Battendo RUN e Return constatiamo, infatti, che il risultato è 
identico al precedente. Poiché abbiamo detto che ii carattere di 
punto e virgola è superfluo, ci sentiamo autorizzati a digitare la 
riga 1 10 come segue: 

110 PRINT ABC 

Otteniamo, invece dei tre risultati di prima, un semplice zero (0) 
e nient’altro. Come mai? 

I computer Commodore permettono di utilizzare variabili defini- 
te con uno Oppure con due caratteri, come ad esempio A = 12 
oppure AC = 12345 oppure A4=67 Variabili definite con più di 
due caratteri sono egualmente accettate ma memorizzate utiliz- 
zando i soli due primi caratteri. 

Per esempio digitare NU=40 oppure NUMERO=40 o, ancora. 
NUOTARE =40 è la stessa cosa. !! calcolatore, in altre parole, 
associerà alla variabile "NU" qualsiasi valore, calcolo o elabora- 
zione che interesserà NU comunque venga chiamato (NU, NUM. 
NUMERO. NUMISANTI eccetera). 

Ritornando al listato precedente, quando il computer incontra 
PRINT ABC 

ritiene di dover visualizzare la variabile "ABC” che. diversa da 
"A", "B” oppure “C", vale zero come qualsiasi altra variabile 
non dichiarata esplicitamente. Ecco dunque che l'istruzione: 
PRINT A;B:C 

è profondamente diversa da: 

PRINT ABC 

proprio per la presenza del carattere di punto e virgola. Volendo 
utilizzare variabili con nomi lunghi, ecco un sistema per farlo 
correttamente' * 

PRINT NUMERO: AREA: IPOTENUSA 


Cp’TKnoQ&tpC Tfty ìuter Ouù Xìli 



che equivale ai 
PRINTNUiARilP 

ed è diverso, lo ripetiamo, da PfilNT NUARIP 

La comprensione del listato, ovviamente, è migliore nei primo 
caso ed ha l'unico inconveniente di occupare piu memoria. 


Conclusioni sull’esperienza 

• Non sempre il punto e virgola è indispensabile. Talvolta è 
possibile sottintenderlo. 

• lì punto e virgola (e, analogamente, la virgola) è indispensabile 
tra variabili diverse. Omettendolo possono sorgere difficoltà di 
interpretazione da parte del computer e portare ad effettuare 
elaborazioni non desiderate benché prive di errori. 


Le variabili “vietate” 

Abbiamo detto che è possìbile utilizzare variabili indicandole 
con due caratteri alfabetici e, in certi casi, alfanumerici. Ce ne 
possiamo render conto ricorrendo ai seguenti esempi: 

AA% = 182: Bf =-43.5: CR=3*45-B1 eccetera 

Non tutte le combinazioni sono però permesse. Se provate, in 
modo diretto oppure sotto programma, a far eseguire: 

LENTE = 18 

otterrete un S.E. Il motivo è presto detto: LENTE è una variabile 
formata da tre caratteri alfabetici utilizzati anche per la funzione 
LEN(X$). Questa ha il compito di “restituire" la lunghezza della 
stringa X$ {tratteremo più avanti questo argomento). 

Il computer, interpretando carattere per carattere, incontra 
dapprima "L". subito dopo “E" e infine *N" A questo punto si 
aspetta di incontrare il carattere di parentesi aperta (come, ap- 


X/v i ■' i- f^iuh 



punto, richiede la corretta sintassi). 

Dato che ciò non avviene (incontra infatti il carattere “N”). 
emette la segnalazione di errore (S.E.) 

Analogamente altre variabili con nomi di fantasia possono 
emettere E.S. se. al loro interno, contengono nomi di funzioni o 
comandi Basic. Esempi: 

LENTO. CATETO (TO) 

OGGETTO. ESEGETA (GET) 

MAREMMA, PREMIO (REM) 

MASCHIO, ASCETA (ASC) 

Altre variabili, i cui caratteri, d'altra parte, non coincidono con 
quelli iniziali di comandi o istruzioni, sono egualmente “vietate". 
ST è infatti riservata al Sistema Operativo (O.S ) del calcolatore 
per memorizzare eventuali condizioni di errore nel colloquia con il 
registratore e il drive. ST è, come si suol dire, una variabile a soia 
lettura: è possibile esaminare il contenuto ma non definirlo. In 
altre parole è lecito PRINT ST ma è illecito ST=46. Un'altra 
variabile a sola lettura è TI, utilizzata dal calcolatore per comuni- 
care i dati relativi all 'orologio interno. Tl$, invece, non è vietata, è 
cioè alterabile a piacere dall’utente a patto che la stringa sia lunga 
sei caratteri. Per esempio, il comando: 

Tl$="1 11007" 

" regola’ 1 le ore 11, 10 minuti e sette secondi. Tl$="li" genera, 
al contrario, un "lllegal Quantity Error” perchè i caratteri non 
sono sei. 

Se state utilizzando particolari programmi di utility, come il 
Basic 4.0, oppure i più recenti computer C-16, Plus/4. C-128, 
altre variabili possono esser considerate vietate. In questi casi, 
infatti, le variabili DS e DS$ sono variabili a sola lettura. 

Il comando PRINT 

« 

Come è noto, i calcolatori Commodore accettano, nella digita- 


Commodore Computer Club *■ XV 



zione, abbreviazioni dei comandi. Per esempio invece di END si 
possono digitare, dì seguito, i caratteri "E” ed il tasto “N" battuto 
insieme cot tasto SHIFT Invece di PRINT, inoltre, è sufficiente 
battere il punto interrogativo (?) eccetera. Siccome è possìbile 
sbagliare nella digitazione delle abbreviazioni, il computer, incon- 
trando un’istruzione '‘strana ", emette il messaggio S E. In questi 
casi è sufficiente visualizzare la riga indicata nel messaggio e 
controllarla attentamente. Esempio:, 

Se il computer visualizza SYNTAX ERROR IN 430 
digitate LIST 430 ed esaminate la riga. 

In un solo caso l'errore non è individuabile e ciò si verifica 
quando si ricorre all'abbreviazione "?" nella battitura del coman- 
do PRINT #: tipico delle operazioni di scrittura dati su periferiche 
(registratore, drive, stampante, ecc.). L’abbreviazione cui si ac- 
cenna è infatti illegale: è necessario battere per esteso PRINT 
oppure ricorrere all’abbreviazione “P” (battuto normalmente) e 
tasto "R" (battuto insieme con SHIFT). 


Conclusioni sull’esperienza 

* Tutte te variabili ( numeriche e stringa) non possono avere 
“incorporati" gruppi di caratteri che costituiscono le parole 
“chiave” dì comandi o istruzioni Basic. 

• 77. ST ed altri nomi sono egualmente vietati (variabili a sola 
lettura). 

m Tl$ deve sempre essere costituita da sei caratteri, 
m PRINT non può essere abbreviato con ?#■ . 


Gli errori relativi 
a vettori e matrici 

Dovreste ricordarvi che, allo scopo di memorizzare valori nu- 


XV/ ■ Commodore Computer Ouh 



menci, è possibile ricorrere non solo a variabili numeriche di tipo 
intero (esempi: AA%=45: B1%=28: X%=-105) o a variabili 
decimali (AA =45.67: B1 =-28.54: X=.789) ma anche a variabili 
individuate da un numero particolare detto “indice". 

Nell’esempio che segue è riportato un breve programma appli- 
cativo. Digitatelo dopo aver spento e riacceso il calcolatore. 


100 D!MX(12) 

1 10 FOR l=OTO 12 
120 X(l)=! 

130 PRINT X(t) 

140 NEXT 

li programma non fa altro che inserire, nel vettore X(l), il valore 

"I" al posto che compete. Entrambi si incrementano in modo 
eguale grazie al ciclo FOR... NEXT. 

Spieghiamoci meglio: La riga 100 ‘genera", nella memoria del 
computer, uno spazio sufficiente per memorizzare tredici valori 
individuati da un indice (numero, cioè, racchiuso tra parentesi) 
che può variare da zero a 12 per un totale, appunto, di tredici (e 
non 12) “caselle". E’ come se avessimo creato una tabella simile 
a quella della schedine del totocalcio con la differenza che. inve- 
ce di poter scrìvere in ciascuna di esse soltanto simboli "1", "2" 
oppure “X” possiamo memorizzare un qualsiasi valore intero o 
decimale, positivo o negativo. 

Le righe 110... 140 eseguono un conteggio da zero a 12 e, a 
mano a mano che questo prosegue, viene associato a ciascuno 
dei tredici elementi il valore stesso del conteggio: nella "casella" 
numerata con zero sarà memorizzato il valore nullo, in quella 
numerata con “ 1 " il valore unitario e così via. 

Il listato, se digitalo correttamente, funziona a dovere e visua- 
lizza, dopo aver digitato RUN (R), i tredici valori. Provate ora a 
cancellare la riga 100. 

Ricordiamo che per cancellare una riga è sufficiente battere il 


Cofnmoóorf- Compu*? 1 ' C'at} - XV H 



numero della riga stessa (100. in questo caso) e premere il tasto 
Return. Alcuni principianti ritengono, erroneamente che una riga 
di programma venga eliminata cancellandola interamente me- 
diante la pressione della barra spaziatrice Con quest' ultima ope- 
razione. infatti, non succede assolutamente nulla e una conferma 
de! fatto che la linea esiste ancora la potete ottenere digitando 
List (R) ed osservando ciò che visualizza lo schermo. 

Accertatevi, dunque che la riga 100 sia effettivamente stata 
cancellata chiedendo il listato (List): dovrebbero apparire solo le 
righe da 1 tO a t20. 

Fate partire il programma con RUM (R). verranno visualizzati 
1 1 valori (daOa IOi ed il messaggio “Bad Subscript E rror in 120’’ 

Se provate a listare la riga in questione (List 120) vi accorgerete 
che non vi sono errori di sintassi L'errore riscontrato dai calcola- 
tore, infatti, consiste nel fatto che. se un vettore non è dimensio- 
nato esplicitamente (cioè è privo del comando DIM), il numero dei 
suoi elementi viene sempre e comunque fissato in 1 1 (numerali 
da 0 a 10). Il motivo della segnalazione di errore è dovuto al fatto 
che, quando il conteggio dei ciclo FOR... NEXT giunge a il. il 
computer non può rintracciare nella sua memoria la dodicesima 
“casella' 1 e blocca, di conseguenza, l’elaborazione. Se. infatti, 
dopo l'interruzione del programma, proviamo a chiedere il valore 
di “I” (PRINT I). possiamo notare che il computer risponde con 
11 , 

Cancellate ora il programma con NEW (R), e battete il 
seguente: 

100 DIMX(IOO) 

110 INPUT-QUALE CASELLA";N 
120 INPUT'DIGITA NUM£RO’’;V 
130 X(N)=V: GOTO 110 


La riga 1 00 dimensiona un vettore di 101 elementi (numerati da 
0 a 100), definito con il carattere alfabetico “X" La riga 110 


XVIII Commodore Compule i CluD 



chede ii numero della "casella" in cui vogliamo trascrivere il 
valore che digiteremo al momento dell'iNPUT di riga 120. 

Trascritto il programma, ecco un esempio di come può essere 
utilizzato: 

RUN (R) 

Quale casella ? 53 (R) 

Digita numero? -65.98 (R) 

Quale casella? 12 (R) 

Digita numero? 9868.67 (R) 
eccetera. 

Nel modo appena visto, nella 53ma "casella' 1 (che chiamere- 
mo, più propriamente: elemento) de! vettore “X", sarà presente il 
valore -65,98, nella 12ma sarà contenuto 9868.67 e così via 
Questo programma, per come è strutturato, non serve assoluta - 
mente a nulla se non per individuare casi particolari che possano 
generare errori. 

Alla domanda "Quale casella?" provate, infatti, a rispondere 
con un numero maggiore di 100 oppure con un numero negativo. 
!n entrambi i casi il programma si blocca emettendo un nuovo tipo 
di errore: 

"Quale casella?" 678 (R) 

“Digita numero?" 6 (R) 

?Bad Subscript errar in 130 
Ready, 

Si noti che il messaggio di errore non si riferisce alla riga 1 10, ma 
alla 130, In questa, infatti, compare l'istruzione X(N)=V Elabo- 
rando la riga 1 10 il calcolatore non può sapere in che modo sarà 
utilizzato it valore che noi digitiamo al momento dell'iNPUT e si 
limita sempiicenenete ad accettarlo associandolo alla /ariabile 
"N". Battendo PRINT N. dopo r interruzione del programma. 


Commodore Computer Club ■ XfX 



possiamo renderci conto del motivo per cui il comando non è 
stato eseguito. In casi come questo è sufficiente rintracciare la 
riga in cui compare DIMX() e verificare, appunto, che l'indice di 
dimensionamento è inferiore a quello che abbiamo cercato di far 
accettare. 

Modifichiamo ora il programma aggiungendo le seguenti righe 
senza cancellare te altre: 

1 15 1F NcOOR N>100 THEN GOSUB 200: GOTO 1 10 

200 FORI=OTO 100 

210 PRINT (“ELEMENTO =*'X(f) 

220 NEXT:RETURN 

Col programma modificato in tal modo, digitando un valore 
negativo o superiore a 100. alla domanda “Quale casella? 
l'elaborazione prosegue alla subroutine 200-220 e. subito dopo, 
alla riga 1 10 (vedi Goto 1 10 di riga 115) 

La subroutine 200-220 visualizza (riga 210) il numero di cia- 
scuno dei 101 eiementi del vettore “X", il messaggio “Elemen- 
to =” ed il contenuto delio stesso. 

In definitiva la subroutine 200-220 farà apparire sul video i 101 
messaggi richiesti. Esempio; 

RUN (R) 

“Quale casella? "99 (R) 

“Digita numero?” 5 (R) 

"Quale casella?'’ 99 (R) 

"Digita valore?" 7(R) 

“Quale casella'?*' 456 (R) 

0 Elemento—0 

1 Elementari 


97 Elemento=0 

98 Elemento=5 

99 Elemento=7 


XX Ccjfrw tortore Cóffìfjyter Ciub 



100 E!emento=0 
‘■Quale casella?” 
eccetera 

In corrispondenza di ciascuna casella, insomma, sarà indicato 
l’eventuale valore digitato in precedenza. 

In caso contrario, l’elemento del vettore conterrà sempre il 
valore nullo. 

Si ricorda che se, alta domanda “Quale casella?" si risponde 
con un valore decimale (come: 55.37) il computer, giunto alla riga 
130. troncherà automaticamente la parte decimale e porrà "N” 
eguale a 55. Si fa notare che. tra l’altro, il programma esaminato 
può essere considerato come idea base per sviluppare program- 
mi di archivi più complessi. 

Cancellate ora il programma (spegnendo e riaccendendo il 
calcolatore) e digitate il seguente: 

100OIM A(3) 

110 FOR 1=0 TO 10 
120 PRINT l:A(l): NEXT 

Facendolo girare (RUN). però, si ottiene la segnalazione di 
errore alla quarta visualizzazione (Bad Subscript Error). 


Conclusioni 

sulla precedente esperienza 

• Un vettore, se non dimensionato esplicitamente, come, ad 
esempio DIM A(187), viene automaticamente dimensionato coi 
valore massimo dì 1 1 elementi (numerati, però. daOa 10). 

• Un vettore, una volta dimensionato, non può accettale indici 
superiori a quello già dichiarato. 


QomrnntiOtP Computò* ìlub - XX/ 



• Se un vettore viene esplicitamente dichiarato con un valore 
inferiore a 10, non usufruisce dei dimensionamento automatico 
che consente il trattamento di almeno 1 1 elementi, ma solo di 
quelli dichiarati. 

* L’errore “Bad Subscript Error' non ha nulla a che fare col 
Syntax Error. Per individuare l'errore chiedete (servendosi dell'i- 
struzione PRINT) il valore delia variabile ìndice : è molto probabi- 
le che un'errata elaborazione dì quest'ultima variabile, prece- 
dentemente effettuata, abbia portato il valore dell'indice oltre il 
limite consentito. 

Cancellate il programma in memoria (NEW) e digitate questo di 
una sola riga: 

100 DIM X(25): DIM X{20) 

Quando battete RUN viene visualizzato un nuovo errore (”Re- 
dim'd Array Error in 100"). Questo dimostra che. una volta di- 
mensionato un vettore, non è possibile modificarne il numero di 
elementi. 

Digitate ora e fate girare questa riga: 

100 DIM X(25): CLR: DIM X(20) 

Questa riga, al contrario, non genera alcuna segnalazione di 
errore. L'istruzione CLR. infatti, cancella tutte le variabili fino a 
quel momento definite, compresi vettori e matrici. 

Attenzione, quindi, ad usare l'istruzione CLR con oculatezza 
per non perdere dati elaborati fino a quel momento. 

Digitate ora: 

100 DIM X{ 10000) 

Digitando RUN si ottiene un nuovo messaggio: “Out Of Memo- 
ry Error", lì motivo risiede nel fatto che, dimensionando un vetto- 
re, il computer cerca di definire uno spazio nella memoria a sua 
disposizione. Poiché ogni elemento di un vettore occupa cinque 
byte ( locazione di memoria RAM) oltre ad alcuni byte sui quali 
non ci intratteniamo, il calcolatore dovrebbe avere a sua disposi- 
zione oltre 50000 byte di memoria. Il Commodore 64 ne ha circ 3 
39000 mentre il Vic~20. senza espansioni, soltanto 3555. Oltre 


X '■ 


rnmòdor* Compaie* >. -■■■ ■' 



alto spazio per i vettori dovrebbe inoltre esserci posto anche per 
altre variabili numeriche e stringa e, non dimentichiamolo, per Io 
stesso programma Basic! 


Conclusioni 

sull’esperienza effettuala 

• Non è possibile dimensionare più di una volta un vettore o una 
matrice, pena la segnalazione "Redim'd Array Errar", 

• Vettori troppo grandi possono superare lo spazio di memoria 
disponibile con l'emissione di un “Out Of Memory Errori’. 


L’Illegal quantity error 

Questo tipo di errore si riferisce a valori numerici illegali, vale a 
dire a valori numerici che non possono essere elaborati dal 
computer perchè in opposizione alla logica matematica oppure 
alle capacità stesse di elaborazione del computer. 

Esamineremo i vari casi iniziando dal più semplice. Tutti sap- 
piamo che la radice quadrata dì un numero "X” è data da quel 
particolare valore che, elevato al quadrato (oppure moltiplicato 
per se stesso), genera il numero “X". 

Ad esempio la radice quadrata di 1 6 vale 4 perchè 4x4 (oppure 
4 elevato al quadrato) fornisce, appunto, il risultato 16. 1 numeri di 
cui si desidera “estrarre” la radice, però, devono essere solo 
positivi perchè non esiste alcun valore che, elevato al quadrato, 
fornisca un numero negativo. Ad esempio non è possibile calco- 
lare la radice quadrata di '*-16“ perchè sia “4” che “-4“ elevati al 
quadrato, o moltiplicati per se stessi, generano il risultato positivo 
16. Ricordiamo che, infatti, meno per meno "fa" più. 

Provate a far girare il seguente programma dopo aver cancel- 
lato quello presente in memoria: 


( 'nmntnrfore Computer Cititi XXIII 



too INPUT'VALORE ";X 
110 PRINT"RAD!CE=” SQR(X) 

120 GOTO 100 

Se, dopo aver battuto RUN (R) digitate valori positivi in risposta 
alla domanda "Valore?' di riga 100. il calcolatore risponderà 
visualizzando {PRINT di riga 1 10} le corrispondenti radici quadra- 
te, Il valore più piccolo che è possibile digitare è zero. 

Se provate a digitare un qualsiasi valore negativo (come, ad 
esempio, -16), l'elaborazione si blocca con remissione del mes 
saggio "lllegal Quantity Error in 110". Anche in questo caso la 
sintassi del comando è corretta. Ciò che genera il messaggio non 
è il comando PRINT oppure SOR, ma proprio il contenuto della 
parentesi (detto ARGOMENTO dell 'istruzione), vale a dire il valo- 
re associato alla variabile "X". Se. infatti, dopo l'interruzione 
dovuta all'errore, chiedete PRINT X. noterete che viene, appun- 
to. visualizzato un valore negalivo. 

L’elaborazione, in altre parole, si interrompe perchè il program- 
matore (cioè voi) non ha contemplato tutti i casi possibili. Se 
volete evitare l’interruzione di un programma in casi come que- 
sto, dovete inserire, all'interno del programma, adeguate istru- 
zioni che, PRIMA di 'pericolose" elaborazioni, decidano se è il 
caso di effettuarle o meno. 

Aggiungete, ad esempio, la riga che segue al programma già 
presente in memoria; 

105 IF X< 0 THEN PRINT “ERRORE": GOTO 100 
Questa riga consente di esaminare il valore di "X" da voi digitato 
al momento dell'elaborazione della riga 100, Solo se il valore è 
maggiore o uguale a zero viene effettuato il calcolo, altrimenti 
compare la parola "Errore e viene posta nuovamente (Goto 
100) la domanda. 

Le istruzioni di controllo del tipo IF...THEN sono utilissime se 
usate con accortezzaecostituisconopreziosi "filtri" molto effica- 
ci che impediscono errori indesiderati e soprattutto, l interruzio- 


XX / V - Commodore Computer Club 



ne dei calcoli. 

Sarebbe opportuno che il lettore si abitui ad inserire i filtri 
PRIMA di ciascuna istruzione (o riga Basic) che contenga la 
possibilità di cadere in errore. 

Esaminiamo ora altri casi in cui è possibile che si verifichi un 
errore. 


CHRS(X), SPC(X) L'argomento "X" deve esser compreso tra 0 
e 255. 

PEEK(X): “X” deve variare tra 0 e 65535 

GOTO X: L'indirizzo deve essere un valore intero compreso tra 0 

e 63999. 

POKE X.Y: "X" può variare tra 0 e 65535 mentre “Y" è limitato 
all'Intervallo 0-255. 

Errori nel trattamento di variabili numeriche intere, decimali, 
stringhe. 

Un altro errore commesso comunemente dai principianti è 
quello di associare a variabili numeriche, stringhe alfanumeriche 
e viceversa. 

Partiamo come al solito, dai casi più elementari Cancellate il 
programma presente in memoria e digitate il seguente: 

100 INPUT A 
1 10 PRINT A 
120 GOTO 100 

Questo microprogramma non fa altro che chiedere un valore 
numerico (riga 100). visualizzarlo sullo schermo (riga 110} e 
ricominciare il ciclo (riga 120). Se non avete commesso errori di 
trascrizione (e sarebbe assurdo per un programma cosi sempli- 
ce!) battete, ad ogni apparizione del punto di domanda (?i vaioria 
caso, decimali, interi, positivi o negativi che siano. Se tutto è in 
ordine, gli stessi valori verranno stampati sullo schermo subito 
dopo. Consideriamo ora alcuni casi particolari sui quali vale la 


Ci - - r m oc? c-'e- Co ■ f - ou ?e r J k j 0 VX 1 



pena soffermarsi. Quando compare il punto interrogativo, prova- 
te a digitare valori molto grandi come, ad esempio: 10000000000 
(dieci miliardi). Vi accorgerete che il calcolatore “traduce" auto- 
maticamente il valore da voi digitato nella cosiddetta "notazione 
esponenziale’’: 1E +10. Tale simbologia significa: “1” seguito da 
(“E+") dieci zeri (“10”). Provate a digitare altri valori (come 
quelli riportati nella colonna di sinistra della tabella che segue) 
che il computer visualizzerà come nella corrispondente colonna 
di destra. 

10000000000 1E10 
- 10000000000 -1E +10 
0.000000001 1E-10 

-0.000000001 -1E-1Q 

Una trattazione approfondita sul calcolo di numeri espressi con 
la notazione esponenziale sarebbe fuori luogo. Il lettore che 
volesse approfondire l’argomento troverà esaurienti risposte in 
un qualsiasi libro di matematica in uso nelle scuote superiori. 

Provate ora a digitare un numero enorme come, ad esempio, 
1E +99. Otterrete un messaggio di "Overflow errar in 100“ che 
indica l'impossibilità, da parte del computer, di elaborare valori 
così elevati. 

Sempre utilizzando lo stesso programma, provate ora a digita- 
re 1E +1 che, “tradotto" significa 10 (1 seguito da un solo zero). 
Vi accorgerete che il computer non lo visualizzerà come lo avete 
digitato voi, ma lo stamperà come un “normale" 10, 


Considerazioni 
sull'ultima esperienza 

• Valori troppo grandi o troppo piccoli generano un Overflow 


X '"'Vf C. < ■:* ri modo tp Cotti Oj j te F n U j i ■ 



error. 

• Valori formati da un numero superiore alle nove cifre, come 
1234567890. vengono automaticamente "tradotti", in fase di 
visualizzazione, nella notazione esponenziale (1.23456789 
E K)9). 

• Valori per i quali sono sufficienti nove cifre per esser rappre- 
sentati "normalmente" (come 1.234 E + 3 ) sono visualizzati in 
notazione decimale ( 1234). 

Provate ora a digitare, avendo in memoria ancora lo stesso 
mtcroprogramma finora esaminato, valori numerici ‘ strani 1 ‘ co- 
me, ad esempio, con due vìrgole (carattere questo che, dovreste 
saperlo, deve esser sostituito da un punto...). Esempio: 
123.456.789. Prendete nota di ciò che accade e tenetelo ben 
presente nella stesura dei vostri programmi. 

Battete un valore al cui interno sia presente il carattere della 
virgola (e non del punto) oppure un carattere di doppio punto II 
computer risponderà con un messaggio finora sconosciuto: “Ex- 
tra Ignored'’. 

Ciò vuol dire che il calcolatore non ha accettato (e quindi ha 
ignorato) gli “altri' 1 (extra) caratteri digitati dopo il carattere di 
virgola o di doppio punto. Esempio: 

RUN (R) 

? 123:456 
Extra Iqnored 
123 

? 789.456 
Extra Ignored 
789 

Il computer, come si può notare, ha accettato il valore numerico 
fornito dalle cifre digitate PRIMA del carattere di doppio punto o di 
virgola. Se. invece del punto, battete il carattere dì punto e virgola 


Co mn v . ? >jo re c o mo uter Clt k X Vi ; 



(esempio: 123,456) verrà visualizzato un nuovo messaggio 
"Redo From Start". 

Questo stesso messaggio compare anche se digitate caratteri 
alfabetici, come "QWERTY" In quest ultimo caso ti computer 
non può associare alta variabile numerica A" di nga 100 il valore 
(. ma quale valore, del resto 9 ) QWERTY e risponde, di conse- 
guenza “Redo From Start” (Rifai dall'inizio) Il computer, insom- 
ma. ripete la domanda di prima finche non vi deciderete a battere 
soltanto caratteri numerici. Notiamo, però, che al contrario dei 
casi precedenti, i due messaggi di errore ("Extra Ignored' e 
"Redo From Start") non interrompono il programma 

Cancellate il programma di prima e digitate il seguente: 

100 INPUT A.B.C 
1 10 PRINT“A="A 
120 PRINT"B="B 
130 PRINT"C="C 
140 GOTO 100 

In questo caso il computer aspetta che voi battiate tre valori 
separati tra loro da una virgola Esempio 

RUN (R) 

? 1.2.3 
A= 1 

B-5* 2 
C= 3 

? 34,67.-45 
A* 34 
B= 67 
C= -45 

Se. invece di battere ire valori separati dalla virgola, ne battete 


XXVIII Comm « >do>e Computer Club 



uno solo, questo verrà associato alla prima variabile ("A”) e, 
subito dopo, comparirà un doppio punto di domanda (??) per 
ricordare all' utilizzatore che il computer attende la digitazione di 
altri valori. Esempio: 

? 45 
?? 23 
?? 78 
A - 45 
B= 23 
0=78 


Conclusioni 

suiresperienza effettuata 

• Con il comando INPUT relativa all'immissione di dati numerici, 
l'elaborazione si blocca fino a che non si digitano tutti ì valori 
richiesti dal comando. 

• Digitando valori separati da virgola o da doppio punto, il 
programma non si interrompe ma compare il massaggio "Extra 
Ignored" per indicare che alcuni dati digitati non sono stati presi 
in considerazione. 

• Digitando caratteri alfabetici invece che numerici il computer 
non accetta il dato e, pur non interrompendo l'elaborazione, 
ripete la domanda dopo aver emesso il messaggio “Redo From 
Start'. 

Cancellate ora il programma presente in memoria e digitate il 
seguente: 


100 INPUT A% 
110PRINT A% 


Commodore Computer CftiO ■ XXIX 



120 GOTO 100 


Questo programma si differenzia dal precedente perchè si 
riferisce a variabili intere (A%) invece che decimali. Se, infatti, 
dopo il RUN (R) digitate valori interi compresi tra -32768 e 
+32767. questi verranno visualizzati sullo schermo secondo una 
modalità analoga a quella di prima (valori minori o maggiori 
generano un "lllega! Quantity Errar"). Se, invece, cercale di 
digitare valori decimali come, ad esempio. -123.65 (attenzione a 
digitare il carattere punto e non quello delta virgola) vi accorgere- 
te che sar anno accettati, ma solo per la loro parte intera e nessun 
messaggio di errore viene visualizzato. 

Modificate ora il programma come segue' 

100 INPUT A$ 

110PRINTAS 
120 GOTO 100 

Questo, senza dubbio, è molto più versatile dei precedenti. 
Infatti proprio perchè l'istruzione INPUT si riferisce ad una varia- 
bile stringa (A$), qualsiasi carattere (eccetto la virgola ed il doppio 
punto) viene accettato e, grazie alla riga 1 10. visualizzato. Prova- 
te infatti a digitare gruppi di caratteri, cioè stringhe, alfabetiche, 
numeriche oppure semi-grafiche purché non più lunghe di due 
righe video. 

Da come abbiamo esposto te cose, però, sembrerebbe che 
non ci sia verso di far accettare al calcolatore nè il carattere di 
doppio punto (:) nè quello di virgola (,) pena I emissione del 
messaggio “'Extra Ignored". 

C'è però un semplice artificio per "costringere" ii computer ad 
accettare anche questi caratteri oltre a quelli "speciali’ come i 
caratteri del colore e del controllo del cursore. 

Il trucco, dicevamo, consìste nel digitare, come primo carattere 
della risposta, quello delle virgolette (o apici) che si ottiene pre- 

G i'Q.'u . dorè Computer Ouh 



mendo il tasto Shift e il tasto ”2". Provate a battere: 


RUN (R) 

? "PROVA: UNO, DUE 
PROVA:UNO,DUE 

Allo stesso sistema (digitazione delie virgolette) si può ricorrere 
nel caso si desideri che i primi caratteri della stampa siano degli 
spazi (i cosiddetti Sìank ottenuti premendo la barra spaziatrice). 



Cùrn mo ■ ' e Con i; \i ; v- * ; fi d: 






tt UTILE 



ni”. Consultate, in questi casi, il foglio di 


• Non possono far riferimento (nè con 
JSR nè con JMPj ad altre routine che , 
volta per volta f verranno pubblicate in 
queste pagine. 

Un esempio pratico 

Supponiamo che il lettore trovi inte- 
ressante la routine “GOTO CALCO- 
LATO" e che voglia utilizzarla anche in 
propri programmi Basic. 

Ecco le fasi da compiere, più lunghe a 
dirsi che da eseguire: 

1 — Accendere il computer (!) 

2 — Se questa è la prima volta che utiliz- 
zate le routine LM, saltate alla fase N + 5< 

3 — Caricate, mediante la sintassi 
LOAD“NUOVO SI£/LM’\8,1 (disco) 
oppure LOAD“NU0VO SIS/LM”,1,1 
(nastro), il gruppo di routine denomina- 
te "NUOVO SÌS/LM” che voi stessi, 
volta per volta, realizzate ed ampliate 
mediante la fase N.13. 

4 - Subito dopo il caricamento, digitare 
NEW (e il tasto Return), in modo da 
mettere "a posto” i puntatori Basic per le 
operazioni successive, 

5 — Desiderando allocare la nuova routi- 
ne “GOTO CALCOLATO” in una zo- 
na RAM successiva all'area destinata al 
Basic, saltate alla fase N. 7. 

6 — Caricate e lanciate il programma 
“Top Memo” per limitare l’area destina- 
ta al Basic. 

7 — Caricate il programma “Caricatore” 
(oppure digitatelo dalla rivista). 

8 — Digitate, copiandole dalla rivista, le 
righe Basic del programma “GOTO 
CALCOLATO” che, se avete seguito a 
puntino le istruzioni, si “fonderanno” al 
programma “Caricatore”, 

9 — Registrate normalmente su disco o 
nastro, e veri Scale, il programma Basic 
così ottenuto. 

10 — Digitate RUN ed indicate, quando 
richiesto, la locazione di partenza in cui 
si desidera trascrivere la routine LM, Nel 
caso abbiate già in memoria (fase N.3) 
una zona RAM contenente routine in 
LM, prestate la massima attenzione a 
non creare pericolose “sovrapposizìo- 


ap punti (Mappa della memoria) da voi 
scritto durante la fase N.ll effettuata la 
volta precedente, 

11 — Annotate su un foglio di carta (che 
avrà la funzione di “Mappa della memo- 
ria” del NUOVO SISTEMA) la locazio- 
ne iniziale, quella finale e tutte le infor- 
mazioni utili che sono comparse sullo 
schermo. Net caso sia già presente in me- 
moria un gruppo di routine LM, abbiate 
l'accortezza di indicare, come indirizzo 
di partenza, la locazione SUCCESSIVA 
a ir ultima locazione della volta 
precedente. 

12 — Per verificare il funzionamento del- 
la routine, caricate il programma DEMO 
ad essa relativo, riportato sulla rivista, ed 
attivarlo. 

13 — Se siete soddisfatti del funziona- 
mento, e se volete arricchire il vostro 
NUOVO SISTEMA delia nuova routi- 
ne, caricate il programma “Save Zona 
RAM” ed indicate la prima e Pultima 


locazione della zona da registrare predi- 
sponendo Papposìto disco (o nastro) ed 
aggiungendo sul foglio le nuove indica- 
zioni necessarie per il corretto utilizzo 
della nuova routine “GOTO CALCO- 
LATO”. Il nome da assegnare al file po- 
trà, ovviamente, essere qualunque. Ad 
esso, comunque, faremo riferimento in- 
dicandolo col nome: “NUOVO SIS' 
LM”. 


Come utilizzare il programma 
“Top Memo*’ 

Per facilitare, soprattutto ai lettori 
principianti, V utilizzo delle routine LM 
che verranno di volta in volta riportate su 
queste pagine, indichiamo qui di seguito 
tutte le operazioni da compiere per rea- 
lizzare un NUOVO SISTEMA che defi- 
nì amo ^pcr ora, standard” ma che, una 
volta compreso il meccanismo per arric- 
chirlo sempre di più, potrà essere abban- 


Commodore Computer Club - 75 



U UTILE 


donato e sostituito da altri, personalizza- 
ti a seconda deile vostre specifiche 
esigenze, 

La funzione Fre(0) 

Poiché, per motivi che non stiamo qui 
a dire, il Sistema Operativo dei computer 
Commodore utilizza^ nel gestire le strin- 
ghe, TUTTA la memoria RAM disponi- 
bile da Basic, può succedere che Putente 
trascriva una routine L.M. in una zona dì 
memoria RAM ritenuta a torto libera e si 
accorga (spesso quando è troppo tardi 
per porre rimedio) che il S O, ha cancel- 
lato, magari solo in parte, la routine 
stessa. 

Per evitare che ciò avvenga è indispen- 
sabile trarre in inganno il computer co- 
municandogli che la memoria RAM di- 
sponibile è più limitata del solito. Ciò si 
ottiene alterando iì contenuto dei pun- 
tatori 55 e 56 (denominati, appunto. Top 
of Memory), Per rendercene conto, ac- 
cendete il Commodore 64 e digitate: 


PRINTFRE (0) 

oppure, se il valore che ne risulta è nega- 
tivo, battete PRINT2H6 -FRE(0) 

Come risposta dovreste ottenere, se 
avete appena acceso il computer, il valo- 
re 38909 che corrisponde, grossomodo, 
al valore del messaggio che compare 
quando accendete un Commodore 64. 

Se inoltre, digitate: 

PRJNTPEEK (55); PEEK (56) 
ottenete come risposta: Oe 160, Infatti 
160x256+0=4(3960 

Tale valore, dovreste saperlo, coni- 
sponde alla prima locazione dì memoria 
che non risulta gestibile direttamente dal 
Basic. Da 49152 a 53247 è presente un'a- 
rea di memoria RAM (“inaccessibile” al 
Basic) che può essere utilizzata per usi 
particolari, come routine in L.M. c utili- 
ty di vario genere. 

Chi si serve del Turbo Tape, come di 
tool di vario tipo (o delle routine grafiche 
di Toma), sa benissimo che quest’area 
risulta, purtroppo, inutilizzabile dato 
che è già occupata, appunto, da utility 
varie. Per continuare ad usare le utility 


cui il lettore è abituato e, contempora- 
neamente, quelle pubblicate nella rubri- 
ca Nuovo Sistema, ricorriamo ad un 
trucco semplicissimo che, nonostante ri- 
duca l'effettiva area a disposizione del 
Basic, lascia comunque urta quantità di 
memoria ragguardevole ed evita il ricor- 
so a tecniche (selezione del banco di me- 
moria, utilizzo della RAM posta “sotto’ 1 
le ROM eccetera). 

Provate, infatti, a digitare: 

PO KE , 80 : CLR : PRINTFR E (0) 

Otterrete in risposta: 18429 Bytes 
Free. Ciò vuol dire che, con la semplice 
operazione dì una POKE, è possibile se- 
lezionare la quantità di memoria RAM 
gestibile da Basic. Sarà quindi possibile, 
nel caso specifico appena esaminato, uti- 
lizzare per gli scopi più disparati i (quasi) 
ventimila byte precedenti la locazione 
40959. L’unica limitazione sarà costituita 
dalla lunghezza massima di un program- 
ma Basic che non deve superare i 18429 
byte compresi quelli relativi a variabili, 
stringhe, matrici eccetera. 


Utilizziamo “Top Memo" 

Caricate il programma “Top Memo” 
pubblicalo in queste pagine e, dopo il 
RUM, digitate 20000 come risposta alia 
domanda “Ultima locazione?". 

Premuto il tasto Return appare il 
messaggio: 

Ultima Locazione: 20000 
P o ke56 ,78 :Poke5 5 ,33 : 

Clr:PrmtFre(0) 

Confermi? (£/N) 


Se non siete soddisfatti del valore im- 
postato, premete un tasto diverso da “S” 
ed il programma ripartirà. 

In caso contrario, premendo una 
tecnica particolare (incorporata nel pro- 
gramma), detta del Buffer dì Tastiera, si 
incarica di alterare i puntatori 55 e 56 e di 
visualizzare la nuova quantità di memo- 
ria disponibile (circa 17657 byte). La rea- 
le quantità dì memoria disponibile è, tut- 
tavia, quella che rimane, dopo aver can- 
cellato il programma Top Memo. Prova- 
te infatti (dopo aver registrato a parte il 


programma) a digitare: 

NEW:PRINT FRE(0) ' * 

Otte rete, in risposta, 17950. 

Se avete seguito i nostri suggerimenti, 
nel vostro Commodore 64 sarà quindi 
presente una quantità di memoria RAM 
completamente ìndipendente dal Basic. 
Tale zona di RAM si estende dalla loca- 
zione 20000 a 40959 e sarà utilizzata, vol- 
ta per volta, per allocare le varie routine 
in linguaggio macchina che costituiscono 
il vostro “NUOVO SISTEMA” perso- 
nale. 


100 PRINTCHRSC1473 "FISSA TOP DI 
MEMORI A” 

110 INPUT "ULTIMA LOCAZIONE” ;X : 
X-X+l 

115 FRINTCHRSC1473 "ULTIMA LO GAZ 
I ONE ; " X - 1 : GOSUB 1B0 

120 PRI NT: PRIMI "CONFERMI? CS/ND 

» 


130 SET AS:IF AS-”” THEN 130 
140 IF AS<>”S” THEN RUN 
150 PRINTCHRSC1471; :S05UB 1B0 
160 POKE 130,3: POKE 631,13: POKE 
632, 13: POKE 635,0 
170 END 

1B0 X1=INTCX/E56);X2=X“CX1*256) 
190 PRINT”Pn56, ”Xl”:Pr55, ”X2”:C 
LR:?FREC05": RETURN 


76 - Commodore Computer Club 


U UTILE 


Come utilizzare il programma 
^Caricatore” 


Dopo aver fissato il Top dì memoria, e 
dopo aver eventualmente caricato la vec- 
chia versione del NUOVO SISTEMA 
che si desidera aggiornare (seguita da 
NEW per “sistemare” i puntatori), cari- 
cate il “Caricatore \ 

Subito dopo digitate la routine che vi 
interessa che, come rune le altre, inizia 
da riga 1000. Per sicurezza registrate e 
verificate, alla fine della trascrizione, il 


programma Basic così realizzato: sarà 
utilissimo in caso dì errore. 

A questo punto digitate il fatidico 
R UN e, alla domanda relativa a ìFin diriz- 
zo da cui volete allocare, digitate il vaio- 
re scelto. 

Dopo alcuni istanti verrà visualizzata 
la locazione iniziale e quella finale, occu- 
pate dalla routine, ed una richiesta dì 
conferma. Digitando il tasto diverso da 
“S" il programma riparte. 

Se tutto ci sembra a posto, invece, la 
pressione del tasto “S : ' visualizzerà nuo- 
vamente le istruzioni per il corretto uso 


della routine ed una serie dì POKE (ab- 
breviate) che, se vi posizionate sopra col 
cursore e premete il tasto Return, altere- 
ranno i puntatori in modo da registrare, 
su disco o nastro, solo la zona RAM 
appena allocata e che contiene la nostra 
routine LM, 

Se, invece, volete allocare altre routi- 
ne LM, seguite la procedura descritta per 
ciascuna routine avendo Punica accor- 
tezza di non “sovrapporvi*’ ad altre rou- 
tine già presentì in memoria. Solo alla 
fine potete registrare Finterò blocco di 
routine in un sol “colpo”, ricorrendo al 
programma “Save Zona RAM' 1 , 


100 REM PROGRAMMA CARICATORE 
110 REM PER ENCICLOPEDIA 
120 REM DI ROUTINE IN 
130 REM LINGUAGGIO MACCHINA 
140 : 

150 REM PER UTILIZZARLO, LEGGI 
LE ISTRUZIONI PUBBLICATE SU 
1S0 REM COMMODORE COMPUTER CLUB 
170 : 

100 Y*=-l : GQSUB 1000 ; FRINÌ : INPUT 
”OA QUALE LOCAZIONE” ;X 
190 READ U : Y“Y+1 : IF UK0 THEN 21 
0 

200 GOTO 190 

210 FRINT^FRIMA LOCAZIONE =”X 
220 PRINT”ULTIMA LOCAZIONE ^”X+ 
Y“l: FRINÌ 

230 FRI NT” CONFERMI? C5/N)” ' 

240 GET ASM IF* A$=” ” THEN 240 
250 IF A$=”5” THEN RESTOSE : T=X 


: DOTO 200 
200 RUN 
270 : 

2R0 GOSUB 1000: PRINT: PRINT”ATTE 
NDER E. . . ” : FRINÌ : U-0 
290 READ B : I F B>-0 THEN POKE T, 
B:T=T+1;U=U*B:GQT0 290 
300 READ B : IF B<>U THEN PRINTiP 

R XNTCHRS C ì 8 ) ^ERRORE DI TRA5 
CRIZIDNE” : END 

310 FRINT”RQUTIN£ ALLOCATA DA”X 
” A ”T“1 ”C0MPR , ” : FRI NT 
320 FRINT^ATTIUARE CON SYS”X:PR 
INI 

330 X1=INT CX/25G) : X2~X-C Xl^eSS) 

: FRINÌ ”P0KE44 3 “XI " : P0KE43 , ” 
X2 ■ 

340 Y1 = INT (T/2563 : Y2-T“C Y1^256^ 

: FRINÌ” : P0KE4S , ”Y1 ” : P0KE45 , 
”Y2 : END 


Come utilizzare il programma 
i4 Save Zona RAM” 

Dopo aver allocato le routine che più 
vi interessano (in aggiunta, magari, ad 
altre caricate precedentemente), carica- 
te questo programma e lanciatelo col so- 
lito RUN. 

Alla domanda “Prima locazione?” ri- 
spondete indicando il numero del byte 
che rappresenta il primo codice macchi- 
na della prima routine presente in me- 
moria. Analogamente, alia domanda 


“Ultima locazione?” digitate il valore 
de IF ultimo byte del F ultima routine LM 
preseme. 

AUa richiesta di conferma premete il 
tasto "S”, indicate con 1 (disco) oppure 2 
(nastro) il tipo di memoria di massa che 
intendete utilizzare e, in seguito, il nome 
che intendete assegnare al file. 

Come già detto in altre parte dell'arti- 
colo, noi lo indicheremo con NUOVO 
S1S/LM ma voi, ovviamente, potrete as- 
segnare il nome die più vi aggrada. 

A questo punto il file — programma 


appena registrato conterrà tutte le routi- 
ne LM di cui conserverete gelosamente 
la mappa della memoria allo scopo di 
utilizzarle in seguito. Ricordiamo che 
ogni routine viene eseguita dal comando 
SYS(XX) in cui “XX” è il valore del 
primo byte della routine in questione* E* 
ovvio che, in alcuni casi, è necessario 
set tare altre locazioni prima del coman- 
do SYS. Ogni routine pubblicata, ovvia- 
mente, indicherà tutte le informazioni 
necessarie per un corretto utilizzo del 
vostro Nuovo Sistema. 


Commodore Computer Club - 77 


L’ UTILE 


100 REM PROGRAMMA IDONEO PER 
110 REM REGISTRARE 20NE DI 
150 REM MEMORIA AUTOMATICAMENTE 
130 REM SU CASSETTA □ DISCO 
140 : 

150 PRINTCHRSC 147) : INPUT “LOCAZ 
IONE INI2IALE” ; X 

160 INPUT "LOCAZIONE FINALE”; T: 
T-T+l 

170 PRINT:PRINT” INIZIO: "X: PRINT 
"FINE: ”T-1 

100 IF T<-X THEN RUN 

130 PRINT: PRINT”CONFERMI? (S/N) 

n 

200 SET AS : I F A$=”” THEN 200 
210 IF ASO ”S’ J THEN RUN 
220 PRINT: INPUT "NOME FILE"; AS 


230 FRINT"1- CASSETTA ” : PR I NT”2- 
DISCO" 

240 GET 8$ : I F BS-”” THEN 240 
250 IF BS“ ” 1 ” THEN UI-l:GOTO 280 
260 IF BS=”2” THEN W=8:G0T0 2B0 
270 BOTO 240 
280 PRINTCHRSC147) ; 

2S0 POKE 198, 5 : POKE 631, 13: POKE 
832, 13: POKE 633 , 13 : PQK£ 63 
4, 13: POKE 635,0 

300 Xl“INTCX/256) :X2-X-CXÌ*256) 
: PRI NT”Pr44 , ”X1”: Fpi3, ”X2; 
310 Y1-INTCT/2S6) : Y2-T-(Y1*2563 
: PRINT” :Pf“4G, ”Yl”:Pr45, ”Y2 
320 PRINT: PRINT: PRI NT”S*”CHR$C3 
43 ASCHRS5C343 " , ”U”, 1” 

330 PRINT : PRINT; PRINT : PRINT : PRI 
NT”SYS64738” 


GOTO calcolato (per C-64) 

( 20000 / 20011 ) 

di Piantarlo Mariani 

Molti dì voi, sviluppando programmi lunghi e complessi, 
avranno avuto difficolta ncIVuso dei saiti condizionati. I 
problemi dei tipo: “Come inserire in un programma molte 
linee del tipo IF.., THEN GOTO,,."? capitano quando si 
ha un numero elevato di controlli, alFintemo di un pro- 
gramma Basic, che impongono la presenza di numerose 
linee del tipo esaminato. Ciò non solo peggiora le leggibilità 
del programma, ma lo allunga considerevolmente, creando 
problemi perciò che riguarda Toccuparione di memoria. 

Sarebbe molto piu semplice e funzionale raggruppare 
tutte le linee in una sola per mezzo di una spedale istruzione 
del tipo CGOTO (GOTO C alcolato) che salta ad un deter- 
minato numero di linea elaborato in precedenza. Un i si na- 
zione di questo tipo, come ben sappiamo, non è purtroppo 
presente nel Basic del C-64. 

Per nostra fortuna ì progettisti della Commodore hanno 
sviluppato un Sistema Operativo modulare ben strutturato, 
tale da permettere, utilizzando alcune routine dello stesso 
SO, dì "costruire" la CGOTO in soli 12 byte dìLM, 

Innanzitutto spieghiamo che cosa è e come funziona la 
routine proposta. 

Questa permette di inserire, in un qualsiasi programma 
Basic, istruzioni simili a CGOTO A, oppure CGOTO 
100+R*4, ed altre che, come intuibile, effettuano un salto 
alla linea calcolata dall 'espressione (oppure alla variabile) 
presente dopo Ftstniziorie stessa. L'utilità di una istruzione 
del genere trova applicazione in una miriade di casi: si 


potrebbe introdurre direttamente, da tastiera, la linea da 
eseguire: oppure si potrebbe calcolare una formula e saltare 
in base al risultato di tale elaborazione eliminando, come 
detto prima, lunghe e noiose righe di IF,.. THEN... 
GOTO, 

Simulare una CGOTO è estremamente semplice, ma, 
prima dì utilizzarla, può essere interessante conoscere come 
funziona la GOTO “normale " presente nel C-64. 

Dapprima (ed è proprio questo il punto che interessa 
maggiormente) la GOTO “prende” il numero presente do- 
po il comando stesso e. in seguito, controlla che tale valore 
rientri nei limiti ammessi (numero intero compreso tra 0 e 
63999); quindi ricerca II numero di linea “incriminato": se 
questo non esiste ali’intemo dei programma Basic, visualiz- 
za il messaggio “Undef ó statement errori', altrimenti setta i 
puntatori del programma al nuovo numero di linea ed ese- 
gue qucst’ultima. 

Purtroppo, per un errore di programmazione del S.Q. 
(non sappiamo se voluto o meno), la routine LM che "chia- 
ma” la GOTO, e che serve per individuare il numero di 
linea, accetta in ingresso solo valori numerici scritti in forma 
esplicita e non sotto forma di variabili o dì espressioni 
numeriche. 

Questa limitazione può facilmente essere aggirata: è risa- 
puto che nel S.O. è presente anche la routine per accettare 
valori da calcolare mediante espressioni oppure variabili. 
Tale intuizione è confermata da una forma sintattica dell'i- 
struzione POKE (tanto per citarne una), che, appunto, 
accetta per parametri anche variabili o espressioni 
numeriche. 

Basterà quindi, per caricare il numero di linea da calcola- 
re, utilizzare la stessa routine della POKE e saltare f in segui- 


78 - Commodore Computer Cfub 


L’ UTILE 


la, al "normale" GOTO, per ottenere io scopo prefissato. 

Il salto, a dire il vero, non sarà effettuato proprio all'inizio 
della routine GOTO, ma più '‘avariti " in, modo da evirare 
l'operazione che esamina de! numero di linea, dato che a ciò 
provvede la nostra routine LM, 

Per realizzare il tutto è sufficiente effettuare solo quattro 
salti al sistema operativo, per un totale di appena dodici 
bvte. 

■m- 

Chi desidera studiare il disasscmblato» noterà che la pri- 
ma istruzione (JSRSAEFD), serve per controllare la pre- 
senza di una virgola. Come, infatti, diremo in seguito» la 
sintassi della nuova istruzione sarà: 

SYS XXXX.Espressione numerica 
e se il carattere virgola (,) non risulta presente, viene visua- 
lizzato il solito SYNTAX ERROR. 

I due JSR seguenti (!SR$ADSA e JSRSB7F7) sono gli 
stessi utilizzati dalla POKE Commodore (e da altre istruzio- 
ni analoghe) e servono, appunto, per caricare il numero, la 
variabile oppure una qualsiasi espressione (purché numeri- 
ca), presente dopo il comando GOTO, Se regressione non 
è numerica viene segnalato un TYPE MISMATCH ER- 
ROR. 

II quarto salto alla subroutine (JSRSA8A3) scavalca i tre 
byte presenti dopo la normale istruzione GOTO, evitando 
così di far eseguire alla stessa un lavoro già fatto in prece- 
denza. 

1000 FRINTCHRSC 147) "QUESTA RQUTI 
NE CONSENTE DI EFFETTUARE U 
N GOTO CALCOLATO" 

1010 RETURN 

1050 DATA 3£ , £53,174,32, 13B t 173, 
3£ f 247 , 103,76 ,163,160 
1030 DATA “1 j 1671 

Come utilizzare GOSUB calcolato 

m Caricare io digitare dalla rivista) tl programma caricatore 
dopo aver fissato il Top dì memoria ( mediante il programma 
Top Memo) a 20000. 

* Digitare la routine GOSUB Calcolato pubblicata in queste 
pagine (numerata da 1000 in poi). 

• Registrare e verificare il programma così realizzato. 

a Digitare RUN ed indicare il valore 20012 (o atiro che il 
lettore ritenga idoneo falla domanda: "Da quale locazione?’ ' 
a Premere il tasto i4 S” alla domanda ** Confermi T** 
a A questo punto la routine è posizionata dalla locazione 
200 12 alla 20049 e si può attivare con S 200/2. 
a // programnta dimostrativo 'Demo Gasub Calcolato ' . da 
caricare dopo aver seguito le fasi precedente costituisce un 
esempio di utilizzo. 


1 00 
110 

ren deho 

REM BOTO CALCOLATO 



120 

130 

INPUT "GOTO 
0/1803 " ; X 
SY520000 , X 

(140/150/180/17 

140 

PRI NT "QUESTA 
”:G0T0 120 

E* 

LA 

RIGA 

140 

1E0 

PRI NT "QUESTA 
” : GOTO 120 

E' 

LA 

RIGA 

1S0 

160 

PRINT"OUESTA 
” : GOTO 120 

E’ 

LA 

RIGA 

160 

170 

PRI NT "QUESTA 
” : GOTO 120 

E' 

LA 

RIGA 

170 

180 

PRI NT "QUESTA 
” : GOTO 120 

E 1 

LA 

RIGA 

180 


GOSUB calcolato (per C-64) 

(20012/20049) 

dì Giancarlo Mariani 

Per la CGOSUtì non c'è molto in più da dire di quanto 
non sia stato detto sulla CGOTO, Studiando il disassembla- 
to del S.G.» si nota che» come prima operazione, vengono 
registrati nello stack gli indirizzi di ritorno, Solo in seguito 
viene effettuato un salto a distruzione GOTO. 

Quando si incontrerà l’istruzione RETURN, verranno 
prelevati dallo stack gli indirizzi memorizzati nella fase pre- 
cedente e ripristinato il normale flusso del programma. 

Purtroppo la routine di GOTO non viene "chiamata" 
all'inìzio del GOSUB, ma solo dopo aver salvato i vari 
puntatori» per cui è stato necessario copiare in RAM tutta la 
routine di GOSUB ed attuane su di essa le modifiche 
necessarie. 

Chi ne ha voglia, può studiare il dìsasscmblato: la routine» 
fino al JSRS0079, è identica a quella del S r O, (posizionata 
normalmente a SA883). In seguito i! "solito" JSRSAEFD 
controlla la presenza della virgola ed i due JSRSADSA e 
JSRSB7F7 "prendono" il numero di linea. 

Si salterà quindi alla routine di GOTO +3 byte 
( JSR$ASA3) per le ragioni spiegate in precedenza. 

Dopo una CGOSUR si può inserire una qualsiasi altra 
istruzione sulla stessa linea Basic purché, ovviamente» sepa- 
rata dal carattere di doppio punto {:). Questa sarà eseguita 
al ritorno dalla subroutine chiamata, A questo scopo serve 
l’ultimo salto ( JMPSA7AE). 

1000 PR3NTCHRSC 147 3 "QUESTA RQUTI 
NE CONSENTE DI EFFETTUARE U 
N GOSUB CALCOLATO" 

1010 RETURN 

1050 DATA 169,3,32.251 ,163,165,1 


Commodore Computer Ctub - 79 


LUTILE 


53,72,165,152,75,165,50 , 72 
1030 DATA 165,57,72,169,141,72,3 
2,121,0,32,253,174,32,136 
1040 DATA 173,32,247,183,32,163, 
166,76,174,167 
1050 DATA -1,4505 

Come utilizzare GOTO calcolato 

• Caricare (o digitare dotta rivista I ti programma caricatore 
dopo c ver fissato il Top di memorie (mediante U programma 
Top Memo l a 20000, 

• Digitane la routine "GOTO Calcatilo" pubblicato in que- 
ste pagine (numerata da 1000 in poti. 

m Registrare e verificare U programma coti realizzato 

• Digitare RUN ed indicare ti valore 20000 f o ohm che il 
lettore ritenga idoneo} alia domanda: "Da quale 
tacazianeT’. 

• Premere il tasto "i" alla domanda "Confermi?". 

• A questo punto la routine e posizionata dada locazione 
20000 alla 2001 1 1 si può attivare con S B 20000. 

m II programma dimostrativo "Demo Goto Calcolato", da 
caricare dopo ater seguita le fisi precedenti, costituisce un 
esempio di utilizzo- 


100 REM DEMO 
110 REFI GOSUB CALCOLATO 
120 INPUT “GQSUB C140/150/1S0/1 
703 " ; X 

130 SYS20012 , X : GOTO 120 
140 PRINT"QUESTA E’ LA RIGA 140 
*: RETURN 

150 PRI NT "QUESTA E’ LA RIGA 150 
" : RETURN 

160 FRINT-QUESTA E’ LA RIGA 160 
" : RETURN 

170 PRI NT "QUEST A E' LA RIGA 170 


RETURN 



1NTERP Stringa (par C-04) 

(20050/20128) 

di Giancarlo Mariani 

Vi t mai capitato di sviluppare un programma in grido di 
eseguire calcoli oppure di tracciare il grafico di funzioni 
matematiche, trigonometriche , o altro? 

Il problema più diffìcile da risolvere, in casi come questi, 
risiede nel dover inserire, m qualche modo, la funzione da 
calcolare airin terno del programma. 

Come beo sappiamo, non t possibile, ad esempio, asse- 
gnare: A$-“Y-FUN2<Xr e. io seguito, calcolare il valo- 
re di “Y" a seconda della funzione contenuta in AS. 

Per aggirare l'ostacolo vengono» di norma, escogitar, di- 
versi metodi, uno dei quali consiste nel fa r scrivere sul video 
un numero di linea Basic» contenente la funzione da calco la- 
re» e in seguito, ricorrendo al buffer di tastiera, simulile la 
pressione del tasto Return ottenendo, in tal modo, linseri- 
menro della nuova linea alt 1 interno del programma . 

Questo metodo funziona benissimo, solo che, per scrive- 
re la linea Basic desiderata , è necessario cancellane lo seher^ 
mo. 

Al momento deirinserimemo. inoltre, tutte le variabili 
fino a quel momento elaborate vengono annullate con gh 
inconvenienti che fc facile immaginare. 

Per fortuna Mamma Commodore ri viene incontro [veiv 
/j va perle,..), allocando nel S.O. alcune routine adatte a 
risolv ere il problema in modo veloce c sicuro. 

Esaminiamo passo per passo la soluzione che proponia- 
mo. 

Come detto prima, abbiamo bisogno di una routine che 
prenda in considerazione una stringa qualsiasi e ricrea a 
tramutarla in espressione eseguibile da Basic, 

La cosa È molto più semplice di quanto sembri. Esiste, nei 
C*64. una particolare zona di memoria chiamata Basic Input 
Buffer (posizionata da SU20Q) in cui vengono temporanea- 
mente inseriti i comandi Basic prima di essere tokenizzati. 
ossia convertiti in codia di un solo byte. 

Questi comandi vengono tokenizzati (appena si preme il 
tasto Rei um) cd eseguiti subito, se in modo diretto» oppure 
allocati in memoria, se preceduti da un numero di linea. 

Da questo fatto si intuisce che» aH'tatcrao de! S.O. deve 
esistere una routine che "prende" la strinp comando da 
$fl2l)0: deve esistere, inoltre, urTnltra routine che la tokentz- 
za e. infine, una terza routine che provvede ad eseguire il 
comando to Cenizza to. 

Basterà quindi trovare il modo di inserire la nostra stringa 
comandi a partire da $0200 e richiamare le routine interessa- 
le per eseguirla immediatamente. 

Questo t proprio quello che fanno gli ottanta byte* LM 
del programma proposto. 

Studiamo il disassembLato; per prima cosa viene control- 
lato seri ù in modo programma, in caso contrario è stampato 


90 - Commodore Computa* Oub 




LUTILE 


i] messaggio ILLEGAL DIRECT, In seguito, dopo aver 
controllalo In virgola di separazione (verrà spiegata dopo la 
sintassi del comando) si preleva La stringa presente dopo il 
comando stesso e la si trasferisce, tramite una breve routine, 
nel Basic Input Buffer. 

Non ci si deve dimenticare a questo punto di "salvare” i 
puntatori del Basic, allo scopo dì permettere una cornetta 
ripresa del l'elaborazione dopo l'esecuzione del comando. 

Dopo aver inserito uno zero al termine della stringa, per 
indicare la fine del comando, si predispone il modo diretto 
( ricordiamo che si può lokcfiìzzare solo in modo diretto). In 
seguito vengono settati i puntatori del Basic (t?A e J7tì) al 
comando da eseguile c, con J$R$A57C, si loke ruzza il 
comando. Subito dopo, per mezzo di JSKStinT*, si preleva il 
comando tokenizzato c lo si esegue con la routine posta in 
SA7FD. Terminata l'esecuzione, si ripristinano i puntatori 
dd Basic c il modo programma, in modo da riprendere 
l'eia boranone esattamente dal punto in cui era stata sospe- 
sa. 

La stnnga rappresentante i comandi o le istruzioni da 
eseguire* può contenere qualsiasi codiando Basic esclusi 
Goto e Gosuh 

Un'altra limitazione è costituita dal fatto che è possibile 
inserire un solo comando alla volta. Non è quindi possibile 
assegnare più comandi separati dal doppiti punto { ;). Se un 
comando non viene riconosciuto saro segnalato il solito 
SYNTAX ERROR , 

1000 PRINTCHRSC 1473 "QUESTA ROUTI 
NE CONSENTE DI INTERPRETARE 
IL CONTENUTO DI " ; 

1010 PRIMI "UNA STRINGA ALFANUMER 
ICA C0F1E SE FOSSE UN GRUPPO 
DI COMANDI BASIC" 

1020 RETURN 

1030 DATA 165.157, 240,5,162,21,1 
00,0,3,32, 253 , 174 , 32 . 158 

1040 DATA 173,32, 130, 103, 165. IBS 
, 133,251 , 165, 123,133,252,13 
2.2 

1050 DATA 160.0,177,34,153,16,2, 
200 , 136 , 2 , 208 . 246 , 169 , 0 

1060 DATA 153, 16, 2, 169, 12B, 133, 1 
57,169,16,133, 122, 169,2,133 

1070 DATA 123,32,124,165,32,115, 
0,32,237, 167,169,0,133, 157 
1080 DATA 165,251,133,122,165,25 
2,133, 123,96 
1090 DATA -1,9497 


Come utilizzare DVTERP A$ 

• Caricar? lo disiare dalia rivista J il programma caricatore 
dopo aver fissato il Top di memoria f mediante il programma 
Top Memoiu 20000. 

• Digitare la routine IN TER P A$ pubblicata in queste pagine 
fmtmemtù da flMMtin poi). 

• Registrane e venfk arv il programma cast realizzato, 

• Digitare RUN ed indicare il valore 20030 (o altro che il 
lettore ritenga idoneo ) albi domanda: "Da quale loca 

* a.*i 

itone: , 

• Premere il tasti) “5" alta domtmda "Confermi?”, 

• A tjuesio punto In routine è posizionala dalla locazione 
20050 alla 20 12 fi e si può attuare con S KV 20050. 

• Il programma dimostrativo 'Demo tnìerp Ai" . da curii un- 
dopo a ter seguito te fiat precedenti, costituisce un esempio di 
utilizzo. 

100 REM DEMO 
110 REM INTERP A$ 

120 A-20: B-40:C-60 

130 AS-"PRINTA*B+CC-B/A5” 

140 SVS20050 , A$ 

150 INPUT "DIGITA IL COMANDO**; A 
S 

160 5YS20050.AS 

Cambia colore al carattere 
(per C-64) 

(20129/20186) 

dì Federico Carretta 

Questa breve routine consente di cambiare istantanea- 
mente il colore di tutti i caratteri, che hanno lo stesso codice 
video, presenti sullo schermo. 

Dovreste sapere che digitando, ad esempio, PO- 
KF. 1024,1 comparirà* nella cella video in alto a sinistra* il 
carattere “A” maiuscolo. Al carattere "B" corrisponde il 
codice 2, e così via. 

La routine LM che* come tutte te altre* si attiva con la 
SYS opportuna* richiede, per il suo corretto funzionamen- 
to, ahn due accorgimenti Nella locazione 1 bXt necessario 
digitare il codice del carattere video che si desidera ooinvol 
gere; analogamente nella locazione 169 si digiterà il codice 
del colore che si intende assegnare al carattere in oggetto, 

1000 PRINTCHRSC 147) "QUESTA ROUTI 
NE CAMBIA IL COLORE AL CARA 
TTERE IL CUI “j 

1010 PR INI "CODICE DI SCHERMO E 1 
RIPORTATO NELLA LOCAZIONE 1 
60 . " ; 

1020 FRI NT "NELLA LOCAZIONE 169 D 

Commodore Computer Ckit> - 67 


L’UTILE 


EUE ESSER PRESENTE IL CODIC 
E DEL COLORE "$ 

1030 PR INI "DESI DERATO M 
1035 RETURN 

1050 DATA 169,7 , 133, 157 , IBS , 231 , 

133.166.160.0. 177.166 

1060 DATA 197,1GB, 209 ,15,24,165, 
166,133,170,165,167,105 
1065 DATA EIE, 133, 171, 165 , 169 , 14 
5,170,56,165,166,833,1 
1070 DATA 133,156.165,167,533,0, 
133, 157, 165, 167, E01 ,4 
1060 DATA 540.3,54,144,811,165,1 

66 . 501 . 0 . 508 , E47 , 96 
1290 DATA -1,6553 


Come utilizzare CAMBIA COLORE 

• Caricar? lo digitare dalla rivista) il programma caricatore 
dopo aver fissalo il Top di memoria ! mediante il programma 
Top Memora 20000. 

• Digitare la routine " Cambia Colore al Carattere’' pubblica- 
ta in queste pagine (numerata da 1000 in poi). 

■ 

• Registrare e verificare il programma cosi realizzato. 

• Digitare RUS ed indicare il valore 20129 (o altro che il 
lettore ritenga idoneo) alla domanda "Da quale locano 
ne?". 

m Premere II tasto "S" ' alla domanda ’ ' Confermi '’ ’ . 

• 4 questo punto la routine è posizionata dalia locazione 
20129 alla 20188 e si può attivare conS ES 20129. 

• ti programma dimostrativo "Demo Cambia Colore al ca- 
rattere". da caricare dopo aver seguirò k fui precedenti, 
costituisce un esempio di utilizzo. 

100 REA DEMO 

110 REA CAMBIA COLORE AL CARATT 

ERE 

150 PRINTCHRSC 147) : POR 1-0 TD E 
55: PDKE 1054+ 1 , I : NEXT 
130 POR 1-1 IO 7 : PRINT : NEXT 
140 INPUT "CODICE CARATTERE (0- 
555 > " : X 

150 INPUT’ "CODICE COLORE (0-555 
)" ; Y 

160 POKE 166, X: POKE 169,Y:SYS50 
159 

170 PRINTCHRS( 145)CHRS(145)CHRS 
(145) -GOTO 140 


Scroti Carattere (per C-64) 

(20189/20245) 

di FedrricQ Canetta 

Questa routine, che sarà apprezzala soprattutto dai crea 
tori di videogame» consente di spostare in basso di un rigo 
tutti i caratteri presenti sul video che hanno to stesso codice 
schermo. Prima di attivare la SYS t necessario trascrivere 
nella locazione 168, mediante una semplice POKE, il codice 
video desiderato. 

1000 PRINTCHRSU47 3 “QUESTA RDUTI 
NE EFFETTUA UNO SCROLLI NG U 
ERSO IL BASSO DI" 

1010 PRINT” TUTTI I CARATTERI AUE 
NT I LO STESSO CODICE DI SCH 
ERPICI ** 

1050 PRINT" IL CODICE DEL CARATTE 
RE DA SCROLLARE" 

1030 PRINT"D£WE ESSERE INSERITO 
NELLA LOCAZIONE 166” 

1040 RETURN 

1050 DATA 169,7,133,167,169,191, 

133,166,160,0,177,166 
1060 DATA 197,168,506,15,160,0,1 
69,35,145, 166,165,160 
1070 DATA 160,40,145,166,56,165, 
166,533,1,133,166,165 
1080 DATA 167,833, 0,133, 167, 165, 
167,501,4,540,3,54 
1090 DATA 144,514,165,166,501,0, 
508 , 547 , 96 
1100 DATA -1,7769 


Come utilizzare “Sentii Carattere’’ 

• Caricare (o digitare dalla ri cista) il programma caricatore 
dopo aver fissalo il Top di memoria I mediante il programma 
Top Memo ) a 20000. 

• Digitare la routine " Serali Caremere" pubblicata in queste 
pagine ( numerata da 1000 in poi ). 

• Registrare e verificare il programma cosi realizzati. 

• Digitare RVN ed indicare il calore 20189 lo altro che il 
lettore ritenga idoneo) alla domanda : "Da quale locazio- 
ne?". 

• Premere il tasto "S" alla domanda "Confermi'" . 

• A questo punto la routine è posizionata dalia locazione 
20189 alla 20245 e si può attivare con $ YS 20189 

• Il programma dimostrativo "Demo Scroi! Carattere", da 
caricare dopo aver seguito le fissi precedenti, costituisce un 
esempio di utilizzo. 


82 - Commodore Computer Club 


L’ UTILE 


100 REn DEMO 

110 REn SCRDLL CARATTERE 
120 PRINTCHRSC147J : FQR 1-1 TD 7 
: FOR J-l TD 10: PRINT‘'A" ; : NE 
XTJ : PRINT : NEXTI 

130 FOR 1-1 IO 13 : FOKE 168,1:SY 
S20109: NEXT 


Cancella Carattere (per C-64) 
(20246/20302} 

dì Federico Cunetta 

Questa routine, dal funzionamento analogo a quelle prece- 
denti, consente di cancellare istantaneamente tutu i caratte- 
ri che, presenti sul video, hanno lo stesso cidice di schermo. 

Prima di attivare la SYS t necessario trascrivere nella 
locazione 168 il codice video desiderato. 


1000 PR ENTCHRSC 147) "QUESTA RQUTI 
NE CANCELLA DALLO SCHERMO I 
CARATTERI “ ; 

1010 PRINT” IL CUI CODICE CDI SC 
KERN0) UA INSERITO, NELLA LO 
GAZ IONE 168” 

L020 RETURN 

1030 DATA IBS, 7, 133, 167, IBS , 231 , 
133,166.160,0.177.166 

1035 DATA 197, 168, E0B , 12 , 1B0, 0 , 1 
69,32, 145, 166, 165. 16B 

1045 DATA 234,234.234,234,56,165 
, 166,233,1 . 133, 166,165 

1050 DATA 167, £33,0, 133, 167, 155. 
167,201,4.240.3.24 

1060 DATA 144,214,165,166,201,0, 
209,247,96 

ir 

1070 DATA -1,0234 



Come utilizzare “Cancella Carattere** 

• ( aricare (ó digitare dulia rivista} il programma caricatore 
dopo aver fissato il Top di memoria ( mediante il programma 
Top Memo} a 20000, 

• Digitare la routine "Cancella Carattere ' ' pubblicata in que- 
ste gine (numerata da 1000 in poi}, 

• Registrare e verificare il programma cosi realizzato^ 

• Digitare RUN ed indicare il valore 20246 lo altro che il 
lettore ritenga idoneo) alla domanda: "Da quale locazio- 
ne?". 

• Premere il tasto (i S” alia domanda '"Confermi 9 ", 

• A questo punto la routine è posizionata dalla locazione 
20246 alla 2Q3Q2 e si può attivare con S ì'S 20246. 

• // programma dimostrativo “ Demo Cancella Conmere", 
da caricare dopo aver seguito le fasi precedenti, costituisce un 
esempio di utilizzo. 


100 REM DEMO 

110 REM CANCELLA CARATTERE 
120 PRINTCHRSC147) : FOR J-65 TO 
60: FOR 1-1 TD 10; PRINTCHRSC 
J) ; : NEXTI : PRINT : NEXTJ 
130 PRINT; PRINT 
140 INPUT "CARATTERE C1-5)";X 
150 PDKE 168 , X : SYS20P46 : PR INTCH 
RSC145) ; ; GOTO 140 

Commodore Computer Club - & J 


HARDWARE 

VIC 20 


Come ti sproteggo 

il cartridge 


Qualche goccia di stagno, un’espansione da 
8K Ram e un po’ d’ingegno per diffondere 
uno dei segreti di Pulcinella. 


di Attrssiindm di- Simunt 



Sappiamo benissimo a che cosa stale 
pensando: dopo mesi c mesi di discorsi 
paternalistici contro le persone cattive 
che sproteggono il software delle perso- 
ne buone, ecco che quelli di CCC sì ap- 
prestano a descrivere in dettaglio una 
tecnica di sprote/ione 

Niente paura* amici! Anche noi. come 
ogni malfattore che si rispetti, abbiamo 
una scusa pronta per giustificarci, anzi 
quattro: 

• fi Vìe 20 e ormai uscito di proda zumi 
e t di conseguenza . non danneggiamo 
nessuno. 


m I a tecnh a che de se riunì mo è valida so- 
fo per chi possiede il drive e richiede i Mer- 
ce rui hard iva re sai computer ipochi ftan- 
no il coraggio di metterci te manti 
■ La sprotezione descritta è un'ottima oc- 
casione per descrivere una nuova tecnica 
di proiezione per colora che fabbricano 
cartucce. 

• fri genere i ca rtridge p< r Vie 20 sono dei 
l idcogux hi che rendono stupidi gli mi Uz- 
za fori e, s proteggendo, scoraggiarmi Li 
produzione di accessori nefandi per le 
g io va n ì genera zi< > ni ( t • os t im pa ra no ) , 

F.d ora, dopo aver contrabbandato per 


buoni, comportamenti che meriterebbe 
ro la sedia elettrica, consentiteci di isti- 
garvi a delinquere. 

Un po’ di teoria 

Il Vie 20, e qualsiasi altro computer 
domestico, dispone di un’area di memo- 
ria RAM e di una seconda area che, nor- 
malmente, È “vuota*" ma che potrebbe 
ospitare una cartuccia piena di altra 
RAM (espansione di memoria) oppure 
ROM (cartucce giochi, interfacce, dia- 
volerie varie). 


84 - Commodore Computer Club 




HARDWARE 


Nel caso specifico del Vie 20 le locazio- 
ni destinate alia cartuccia sono quelle nu- 
merate da 40960 a 49152. 

Nonostante debba esser noto* ribadia’ 
mo il fatto che un computer non può 
sapere se una memoria t RAM oppure 
ROM oppure EPROM o altro. 

Se. quindi, in quel banco di 8K inseria- 
mo una cartuccia {prima di accendere il 
Vie) tl nostro sistema non avrà più un 
“vuoto" in quella particolare zona. 

Dovreste anche sapere che i sistemi 
Commodore sono strutturati in modo ta- 
le che. al momento dell'accensione, se in 
alcune particolari locazioni di memoria 
sofie presenti determinati codici, il siste- 
ma ^riconosce' ' la presenza di una car- 
tuccia e viene attivata una routine in lin- 
guaggio macchina che fa partire il 
programma. 

E’ ovvio che i costruttori di cartucce 
conoscono benissimo questo particolare 
e. in base ad esso strutturano le cartrid* 
ge che producono. 

Per chiarire quali sono i codici è bene 
riferirsi alla seguente tabella che contie- 
ne nella colonna di sinistra l'indirizzo e in 
quella di destra il valore del loro 
contenuto: 


Indir, 

Peek 

40960 

9 

40961 

160 

40962 

9 

40963 

160 

40964 

65 

40965 

48 

40966 

195 

40967 

194 

40968 

205 


Di queste nove locazioni le ultime tre 
rappresentano i caratteri maiuscoli “C T “ 
“B" “M" che, come è noto, sono le ini* 
ziaìi dì Commodore Business Machines. 
Le due precedenti sono un vero e pro- 
prio codice (65 =a; 48=4)), 

Quando i] Vie 20 viene acceso, il siste- 
ma operativo, prima di effettuare altri 
controlli, verifica se, nelle locazioni da 


40964 a 40968, è presente il messaggio 
In caso negativo contìnua pei 
la sua strada fino alla visualizzazione del 

ri 

solito "Commodore,,, Basic V2,.. Bytes 
Free...", 



Se, invece, i cinque caratteri sono rico- 
nosciuti, il computer deduce che è pre- 
sente una cartuccia neirapposito allog 
giumento c, invece di continuare le solite 
operazioni, salta ad eseguire il program- 
ma in L.M, la cui locazione iniziale è data 
dai contenuti delle locazioni 40962 c 
40963. Le prime due locazioni (40960 e 
40%1) hanno il compito di ricordare al 
computer il programma LM da attivare 
in caso dì pressione di Run/Stop e 
Restore. 

Nel caso che abbiamo indicato in ta- 
bella, una cartuccia che presentasse quei 
particolari valori partirebbe anche con 
SYS( 160*256 +9), E diciamo " partireb- 
be" 1 perchè in effetti, non è possibile digi 
tare SYS... dato che, non appena il com- 
puter viene acceso* il programma si lan- 
cia da solo c non consente, normalmen- 
te. il “recupero" del Basic, 

Abbiamo però detto che tutto ciò av- 
viene solo se, al momento dell'accensio- 
ne, jl computer individua il codice 
"aQCBM”. Se, dunque, potessimo inse- 
rire la cartuccia DOPO aver acceso il 
calcolatore (a confronto, cioè, avvenuto 
e fallito), potremmo leggere ed esamina- 
re comodamente il programma tramile 
Basic, 

Come è noto, però, è pericoloso inse- 
rire una cartuccia a computer acceso e, 
anche riuscendoci, si generano malfun- 
zionamenti di vario tipo 


Il trucco 

Il rimedio all'* 'incori veniente"* consi- 
ste* semplicemente, nello sconnettere il 
pin di alimentazione del connettore per 
cartucce e collegarlo ad un interruttore 
che troverà posto sul Tetro del Vie, Poi- 
ché questa operazione chirurgica è bene 
Sìa fatta solo da persone esperte, ci limi- 
teremo adire che il pin dei 5 volt è ilN.21 
del connettore: chi se ne intende non 
avrà difficoltà ad interpretare quanto ab- 
biamo detto; gli altri, che non hanno ca- 
pito niente, è bene che non ci mettano le 
mani. Dato che ci siete, inoltre, e stabili- 
to che ormai il vostro Vie è manomesso, 
aggiungete anche un comodo pulsante di 
Reset incorporato; è il pin indicato con 
U X“ ne IPap pendice del manuale di istru- 
zione del computer. 

Supponendo di aver realizzato le con- 
nessioni descritte, come si può fare per 
esaminare il contenuto di un cartrìdge? 

m Spegnete il computer. 

• Inserite la cartuccia che intendete 
s protegge re. 

• Posizionate t interruttore dei 5 volt in 
modo "spento". 

• Acce ridete il computer: compare il soli- 
to messaggio relativo al Vie 20 senza 
espansioni dì memoria. 

• Accendete t ì me r rutto re dei 5 volt: non 
dovrebbe succedere assolutamente nulla 
(almeno ve lo auguriamo.,,) 

• Pki questo momento potete leggere, 
tramite Peek, i! contenuto degli 8K Ram 
della cartuccia . 

Se tutto è in ordine il programma do- 
vrebbe partire con SYS64802. oppure 
premendo il pulsante di Reset (se l’avete 
inserito) e ancora, più semplicemente, 
con Run/Stop e Restore. £' ovvio che 
alcune cartucce potrebbero avere modi 
di Lancio differenti, 


Come registrarlo 

Da quanto detto, però, il programma 
su cartndgc può essere esaminato ma, 
agli atti pratici, potrebbe non interessare 

Commodore Computer Club - 65 



HARDWARE 


nessuno: la sprotezione* si sa, è bella se 
consente copie illegali. Che ce ne faccia^ 
mo di un sistema che consente soltanto di 
STUDIARE (orrore!) un programma? 

Tutti sanno (!) che è possibile registra- 
re una qualsiasi zona di memoria alteran- 
do, opportunamente, i puntatori 43, 44 
(inizio Basic) e 45, 46 (inizio variabili, 
fine implicita del Basic). Lo faremo an- 
che noi; digitate: 

POKE43,0: POKE44J60; 
POKE45,255: POKE46.192 

Il Vie 20 risponderà: Ready, Digitate 
allora: 

$ÀVE'NOME*\8*I 

A questo punto il vostro drive ronzerà 
tenendovi col fiato sospeso per il tempo 
necessario a registrare 8K Byte. 

Sul vostro disco, alia fine, è presente 
Hmmagine dei programma su cartuccia 
assolutamente inservibile.,. 


Ma perchè ci dite ciò? 

Avete ietto benissimo: il file program- 
ma registrato non potrà essere utilizzato. 
A che cosa serve, allora? 

Calma ragazzi, dateci il tempo dì spie- 
gare qualcosa prima di menare le mani. 

Il programma registrato, come, del re- 
sto, quello sulla cartuccia "originale'*, è 
un programma in L,M„ che, per funzio- 
nare, ha bisogno di esser tisicamente pre- 
sente proprio nel banco di memoria posi- 
zionato da 40960 a 4915 T Poiché respon- 
sione di memoria di SK Ram occupa le 
locazioni da 8192 a 16383 il programma, 
caricato in questa zona, non potrà mai 
funzionare. Per farlo girare abbiamo bi- 
sogno di un'espansione di memoria da 
8K Ram che occupi le stesse locazioni del 
programma copiato (40960 49151), 

E 1 bene ricordare che le Ram sono 
tutte eguali e che la zona di memoria che 
occupano dipende da un pin che, colle- 
gato ad uno dei quattro blocchi disponi- 
si - Commodore Computer Club 


bili, assegna automaticamente un banco 
di memoria. 

Ciò significa che un blocco di 8K dì 
Ram che abbia il pin (non diciamo quale) 
collegato col pin 10 della porta di espan- 
sione, configurerà automaticamente il si- 
stema come espanso ad 8K: quello col 
pìn 10 è infatti il collegamento di una 
comune espansione da 8K- 

Ecco di seguito i pm della porta di 
espansione, il numero di blocco e le loca- 
zioni di memoria interessate. 


La tabella dei pìn 


Pin 

Blk 

Locazioni 

10 

1 

8192 16383 

11 

2 

16383 24575 

12 

3 

24576 32767 

13 

5 

40960 49151 


Notiamo esplicitamente che il blocco 4 
i da 32768 a 40959) t riservato al sistema e 
non può essere occupato da nessun 
“aggeggio"; 


I vari casi possibili 

Se disponete di un’espansione di me- 
moria di 8K originale Commodore, c la 
aprite, noterete con gioia die, al suo in- 
terno, sono presenti quattro micro inter- 
ruttori (vedi foto) uno solo dei quali è 
acceso mentre gli altri tre sono spenti. 
Quello acceso è collegato, inutile dirlo, 
al pin 10 che configura automaticamente 
j] sistema espanso di 8K aH’accensiane. 
Spegnendo tale interruttore, ed accen- 
dendo UNO SOLO degli altri tre, sele- 
zionerete, a seconda dei casi* uno dei 
quattro blocchi possibili. 

Pertanto, per caricare il programma 
prima registrato su disco, dovete: 

* Aprine la cartuccia da 8K Ram 
Commodore . 

* Accendere it primo ime minore e spe- 


gnere tutti gli altri. 

• Richiudere la cartuccia ed inserirla nel 

Vie SPENTO 

• Accendere l'interruttore dei 5 volt (da 
voi installato prima). 

• Accendere il computer e il drive. 

• Digitare LOAiTNOMF\8J 

• Al termine del caricamento digitare 
5 YS 64802 oppure Runf Stop e Resto re 
oppure premere il pulsante di Reset: il 
gioco dovrebbe partire 



Paradossalmente, tenendo conto del 
costo maggiore, Tespansione da 16K 
Ram della Commodore non possiede mi* 
croimerruttori al suo interno, ma solo 
saldature die presentano maggiori 
problemi* 

Cartucce Ram di altre marche, analo- 
gamente, sono prive dei comodi interrut- 
tori che, praticando una fessura sulla car- 
tuccia, sono facilmente gestibili senza es- 
ser costretti ad aprire e richiudere tutte le 
volte la custodia stessa. In questi fran- 
genti i casi sono due: o vi arrangiate a 
dissaldare le piste inserendo interruttori, 
o lasciate perdere il progetto. 

Come proteggere 

Abbiamo detto* airinìzio* che avrem- 
mo suggerito un sistema per proteggere il 
proprio sofware da copiature simili a 
quella appena descritta. 

Vediamo di riassumere brevemente 
come aggirare Tautorun: 




HARDWARE 



• Non appena il computer viene acceso il 
programma parte impedendo tentativi dì 
salvataggio. % 

• Non è però passibile stabilire se il pro- 
gramma risiede su Rom (cartridge origi- 
nale) oppure su Ram (cartridge sprotetto- 
re \ e, in quest'ultimo caso ( Pautorun non 
può funzionare. 

La soluzione 

IL problema sarebbe bell'e risolto se il 
computer fosse così intelligente da sape- 
re se il banco di memoria che ospita il 
programma è di tipo Rom (originale ) op- 
pure Ram (copia illecita). 

11 computer, forse, non è cosi intelli- 
gente, ma il program malore lo è di certo. 

Partiamo dunque dal presupposto 
che, benché il banco di memoria sia lun- 
go 8K, non tutti i suoi byte siano indi- 
spensabili al suo corretto funzionamen- 
to, In altre parole; se il vostro computer 
dispone di 3K non è indispensabile che 
un programma sia lungo 3000 byte per 
funzionare; può esser certamente più 
breve e. in questo caso, alcuni byte non 
saranno assolutamente utilizzati durante 
il suo funzionamento. 

Supponiamo, tornando al nostro caso, 
che gh ultimi (o, addirittura, soltanto 
Putrirne) byte non sia necessario per il 
funzionamento del programma. AlPin- 
temo di questo, furbescamente, il 
softwarista inserirà un gruppo di istruzio- 
ni (da tradurre opportunamente in LM), 
che simbolicamente possiamo cosi 
indicare: 

À=49151 
POKE A,0 

IF PEEK(A) THEN CONTINUE 
POKE A, 255 

IF PEEKf A)< 255 THEN CONTINUE 
RESET 

Esaminiamole una per una: 

« Viene azzerata la locazione 49151 if ul- 
tima del banco). 

• 5V, ad una successiva, immediata lettu- 
ra della stessa locazione il valore è diverso 
da zero l IF PEEK... ) allora vuol dire che 


il precedente tentativo di scrittura (POKE 
A . 0 ) è fallito . Se ne deduce che nella zona 
di memoria e presente una Rom (è impos- 
sibile, infatti, scrìvere su una Rom, ma 
solo su una Ram). Questa f con molta 
probabilità, è quella originale ed il pro- 
gramma può quindi continuare. 

• Se, invece, la lettura della locazione 
49 15 1 è eguale a zero, potrebbe significa- 

I* n * 

re che al suo posto è presente una Ram , 
azzerata dalla precedente operazione di 
Poke. Potrebbe, però , esserci al suo po- 
sto una Rom con valore zero, 
m Per esser sicuri che in 49151 non ci sia 
un Rom nulla, cerchiamo di Pokarci 255. 
m Se. nonostante PokelÀ),255 l d succes- 
siva lettura fornace un valore diverso, 
vuol dire che è presente una Rom , 

• In caso contrario, se siamo giunti fino 
alla fine , vuol dire che siamo in presenza 
di una Ram, ed il programma continua 
con un Reset che può esser di natura piu 
varia possibile: un loop chiuso, disabilita 
zione permanente della tastiera, eccetera , 

Questo tipo di protezione t ormai co- 
stantemente adottato dai produttori di 
cartridge, specialmente per Commodore 
M. I possessori di questo computer, in- 
fatti, potrebbero sproteggero nel modo 


più semplice possibile dato che il Cfà4 è 
pieno zeppo di Ram, anche nella zona 
normalmente occupata dal cartridge. 

Se infatti tentate di sproteggere nel 
modo descritto una cartuccia perCtftf, vi 
accorgete che non è cosi semplice come 
per il Vie 20, 

E questo è anche uno dei motivi per 
cui non abbiamo avuto molti scrupoli a 
pubblicare il presente articolo,,. 


Per i più bravi 

Tra le lettere dei lettori che descrive- 
ranno nel modo più semplice, chiaro e, 
soprattutto, BREVE, il perchè dell'alte- 
razione del puntatore 45 (posto a 255 
invece che a zero) insieme al sistema per 
trasferire su nastro una cartuccia, sele- 
zioneremo, come a) solito, alcuni nomi- 
nativi ai quali invieremo un appendiabiti 
ed un accendisigari. 

1 nominativi dì coloro che riceveranno 
il chiodo ed il fiammifero saranno pub- 
blicati per la gioia dei partecipami. 

P.5., L’importante non è vincere, ma par- 
tecipare. 


Commodore Computer Club -87 




OLTRE IL BASIC 

C 64 - C 128 


Alla (ri)scoperta 
dell’lntemipt 

Come costringere ii cervello del 
computer ad eseguire di continuo una 

nostra routine 

di Michele Maggi 



^turi 


88 - Commodore Computer Clut 





OLTRE IL BASIC 


^Jonostame fargomemo sia stato già 
trattato più volte su C.CC., Io affron- 
tiamo nuovamente sia perché molti let- 
tori,, che da poco seguono la rivista, 
chiedono di parlarne sia perché una se- 
rie di note suirìmerrupt sarà di certo utile 
anche all’utente più smaliziato. 

La teoria 

Non tutti sanno (ma dovrebbero sa- 
perlo) che anche quando il nostro com- 
puter sembra non far nulla, come ad 
esempio quando è stato appena acceso t 
vediamo il cursore lampeggiare, in real- 
tà esegue milioni di operazioni senza che 
noi ce ne accorgiamo. 

Ciò accade grazie alla notevole veloci- 
tà di elaborazione del microprocessore 
che, ogni sessantesimo di secondo, in- 
terrompe il programma che sta ese- 
guendo (posto che ne stia eseguendo 
uno) fcd effettua una serie di controlli, 
necessari al corretto funzionamento del 
computer. 

Tali controlli si riferiscono essenzial- 
mente alla “scansione" della tastiera, 
per verificare se è stato premuto un ta- 
sto, al controllo del lampeggio del cur- 
sore, all’esame di un eventuale “dialo- 
go’* in corso Ira computer c periferiche. 


airaggiornamento della variabile del 
tempo “TP e altri ancora, 

Come inserirsi neLTIntermpf 

Da quanto detto sembra di non poter 
far nulla per “fermare” o modificare la 
routine di controllo (detta appunto di 
interrupt) che, data la velocità con cui si 
svolge, da Basic rende impossibile un 
“inserimento” alTintemo della sua strut- 
tura. 

La richiesta di interrupt è infatti gene- 
rata via hardware e, se ciò non bastasse, 
la stessa routine è situata in una zona di 
memoria a sola lettura (ROM), 

Fortunatamente i progettisti del C64 
hanno fatto in modo che Tindirizzo di 
partenza di questa routine fosse situato 
al fin temo di due locazioni RAM ì cui 
indirizzi esadecimalì sonoS03I4e $0115, 
Grazie proprio a quest'ultimo osser- 
vazione, nulla impedisce di modificare il 
contenuto delle due locazioni inserendo, 
al loro posto, l'indirizzo di una routine 
in LM da noi creala, 

Agendo in lai modo, ogni volta che 
verrà generato un interrupt (e cioè 60 
volte al secondo) il controllo passerà al- 
la routine il cui indirizzo è stato modifi- 
cato. Il risultato sarà un'esecuzione pra- 
ticamente “continua" della nostra rou- 
tine. 


Un accorgimento da non dimenticare 
per nessun motivo è costituito dal fatto 
che, al termine della routine, sarà indi- 
spensabile comunque un salto alla ori- 
ginaria routine di Interrupt (SEA3I). 

Da quanto detto è agevole capire che 
la manipolazione del vettore di interrupt 
apre tantissime porte per ciò che riguar- 
da effetti particolari che potranno ag- 
giungere una nota di professionalità ai 
vostri programmi. 

Due esempi pratici 

In queste pagine sono pubblicati due 
esempi piuttosto banali, ma di sicuro 
“effetto", che si basano sulla tecnica de- 
scritta. 

Lampeggio del bordo. Il bordo del vi- 
deo lampcggerà di continuo. 

Scritta indelebile. Sulla prima riga 
dello schermo comparirà il messaggio 
“Commodore 64" e, qualunque tasto 
voi premiate (Shift e Clr/Home com- 
preso), rimarrà sempre visibile. 

Premendo i tasti ttun/Stop e Restare 
si riportano i vettori alla normalità men- 
tre, per far ripartire i programmi, biso- 
gnerà digitare SYS 828. 

I più abili, armati di pazienza, posso- 
no disassemblare k routine proposte in 
modo da impadronirsi delle tecniche de- 
scritte, fra k più interessanti e stimolanti 
:he é possibile realizzare. 


10 REM ESEMPIO DI INTERRUPT 
15 REM MESSAGGIO PERMANENTE 
£0 FOR 1-080 TO 035: READ A:P0K 
E I, A:X-X+A:NEXT 
85 IF XOH1BB THEN FRINT^ERRQR 
E DI DIGITAZIONE": END 
30 SYSB80 

35 DATA 180,159,73,141,00,3,1 
69 ,3,141,21,3, 00 1 S6 , 162 , 40 s 
185 

40 DATA 07,3, 157 t 855 ,3, 805, 00 
B , 847 » 76 f 49 1 834 , 38 , 38 , 38 , 38 
,38 

45 DATA 35 , 32 ,32,38, 32 , 38 , 32 . 

32,3,15, 13,13, 15,4,15,10 
50 DATA 5.32,32,54,52,32,32,3 
2, 32,32,32,32.32,32,32, 32 
55 DATA 32,32,32,32 


10 REM ESEMPIO DI INTERRUPT 

20 REM BORDO LAMPEGGI ANTE 

30 REM PER C-64 

40 POR I -82E3 TO 051 : READ A:POK 
E I , A:X=X+A:NEXT 

50 IF X< >2640 THEN PRINT"ERROR 
E DI DIGITAZIONE” : END 

80 SYS028 

70 IF X< >2640 THEN PRINT”ERRQR 
E DI DIG1TA2I0NE”tEND 

B0 SYS82S 

S0 DATA 120,163,73,141,20,3,16 
9,3 

32 DATA 141,21,3,86,96,162,0,1 
42 

34 DATA 32,208,232,208,250,76, 
49 , 234 


Commodore Computer Club - 89 


L’ UTILE 


Enciclopedia 
di routine 

di Maurizio Dett* Abate 

12400 PrinlUsing 

{Per qualsiasi Commodore) 



Sebbene sia già stata pubblicata una routine che compie 
le stesse funzioni (N.29 di C.C.C.) la riproponiamo, con la 
stessa numerazione, in modo che il lettore possa scegliere 
quella che ritiene più idonea, 

“Prinr Using" vi permette di formattare un dato numeri- 
co, incolonnando il punto decimale. 

Per “formattare" si intende stabilire il numero di cifre a 
sinistra e a destra del punto decimale da prendere in consi- 
derazione, in modo da rendere più gradevole POutput su 
video (e/o su carta). 

Prima di chiamare la subroutine è necessario assegnare 
alla variabile numerica XI il valore da formattare ed alla 
sanabile alfanumerica Yl$ il formato. 

Esempio di formato: 

Yl$sr“* •****,**" 

La quantità di asterischi (potete usare al -loro posto un 
qualsiasi altro carattere) presenti prima e dopo il punto, 
indica alla subroutine il numero delle cifre da considerare. 
Al ritorno la variabile stringa XYS conterrà il valore oppor- 
tunamente formattato e, se necessario* viene inserito un 
certo numero di spazi bianchi, m modo da consentire l'alli- 
neamento della virgola (punto decimale), 

T seguenti esempi dovrebbero chiarire il funzionamento 
della routine; il carattere apostrofo {') è da intendersi come 
uno spazio bianco: 


X 1=535.35367 
Risultato: 
XY$-"‘535.353" 

XI =43437.65 
Risultato: 
XY$=“ 3437.65“ 


XI =89 
Risultato: 

XYS-‘‘"89' 


Il Demo pubblicato insieme con la subroutine è molto 
semplice e contiene una schermata di spiegazione. 

100 REM ESEMPIO D’USO 

110 REM USING 

120 REM PER QUALSIASI COMMODORE 

130 : 

140 PR INTCHRSC 147 3 

150 PR I MI “SULLA SINISTRA DEL UI 
DEO APPARIRÀ 1 ” 

160 PR I NT”UNA COLONNA DI NUMERI 
CASUAL I , SULLA” 

170 PR I NT"DE5TRA GLI STESSI NUM 
ERI, STAMPATI ” 

1B0 PR INI “PER MEZZO DELLA ROUTI 
NE PROPOSTA f H 

290 FRINII FORMATO: «**.«*). 

200 FRI NT "GIUDICA TU QUALE OUTP 
UT E ’ PIU 1 ” 

210 PRINT^GRAOEUOLE* .. " 

220 PR INI "PREMI UN TASTO PER IN 
I Z I ARE " 

230 GET A$:IF LENCASX0 THEN 23 
0 

240 PRINTCHRSC 147 3 : , ** 
m ri ; FQR 1*1 TG 20 

250 XI* I NT CRND CI) *2000000 )/CRND 
C 03*2000) 

260 1F RNDC1X.2 THEN Xl-XÌ + 100 
00*RNDC1) 

265 IF RNDC1 X .3 THEN X1-INTCX1 
) 

2G7 1F RNDC1X.4 THEN X1-INTCX1 
3 + * 21 

270 PRINTX1; ;GDSUE 12400: PRINT 
TAB C 25 3 ; XYS : NEXT 

2Q0 : 


LUTILE 


9999 
1 2400 


12405 


12410 

12415 


12420 

12430 

12435 

12440 

12450 

12470 

12475 

12490 

12491 

12492 
15493 
12434 

12499 


END 

Y9S-" X13> = RIGHT$i STRSCXll , 

LENI STR$ CX1 ) ) ~ 1 ) r X3-LENI! X1S 
J : X4-LENC Yl*l 

FDR Y7-1 TD X4-IF niD$(YiS, 

Y7 ,1)<>”." THEN NEXT:X5-Y7; 

GOTO 12415 

X5-Y7: Y7-X4 : NEXT 

FDR Y7-1 TO X3: IF MIDSCXlSi, 

Y7,l )<>".* THEN NEXT:X6-Y7: 

GOTO 12430 

XE-Y7: Y7-X3:NEXT 

IF X6<>X5 THEN 12440 

XYS-niDSCXli. XB-XS+l , X5-11 : 

GOTO 12470 

IF X50XG THEN FQR Y4 = l TG 
X5-X6 ; Y9S-Y9$+CHRSC321 : NEXT 
XY4=Y9S+LEFTS(X1S . X6-11 
JF Xl'INTCXl) THEN 12430 
XY$=XYS+niDSCXlS, X5 . LENlYIS 
J-X5+1) 

RETURN 

REN PRim DI GOSUB: 

REM YlS : FORNITO 

REN X ì : NIKI E RO DA TRATTARE 

REH XYi : CONTERRÀ ’ IL R1SULT 

PIO 

REH NDNE: PRJNT U51NG 


1 3300 Elaborazione di stringhe 

l Per qualsiasi Commodore) 

Questa routine implementa ben sei funzioni, ciascuna 
delle quali ha il compito di facilitare e rendere più completo 
tl trattamento delle siringhe. Il Basic Commodore* infatti, è 
piuttosto scarno e le istruzioni dedicate alle stringhe sono 
poche c non ne consentono una gestione soddtsfaceme e 
completa. 

Prima dì effettuare il GoSuh si deve assegnare alla varia- 
bile V X un valore compreso tra uno e sei che ha it compito di 
indicare la funzione richiesta. 

Elenchiamo te funzioni a disposizione: 

Inserimento: YX = 1 

Permette di inserire in una siringa principale (X 15) una 
sotto stringa {SS$) + a partire da una determinata posizione 

(XI). 

La variabile XXS conterrà il multato dcM’elaborazione. 


Esempio: 

Xl$=*-jfì HO UN COMMODORE COMPUTER " 

SSl^DRIVH È UN +1 

xt=v 

Risultato: 

XX$= 4 IO HO UN DRIVI E UN COMMODORE 
COMPUTER" 

Come avrete sicuramente munto, la variabile XI deve 
contenere la posizione del carattere della stringa master 
dopo il quale si vuole che venga inserita la substrmga. 

Sov rapposi rione: VX =2 

Questa funzione è analoga alla precedente, ma la sotto- 
stringa SS$, invece di essere inserita, si sovrappone alla 
siringa pricipale X15 a partire dalla posizione indicala da 
Xl 11 risultato de IV e la Ih* razione sarà, come prima, conte- 
mito in XXL 

Se nell'esempio deila precedente funzione non si tosse 

operato un inserimento, ma una sovrapposizione, il risulta- 

* 

io sarebbe stato: 

XXS— “IO HO UN DRIVE F, UNCOMPU’IHRT 
(senza lo spazio tra “UN" e “COMPUTER ! 

Piace: YX =3 


Permette di conoscere h posizione del primo carattere di 
una sottostringa tSSS> a 11‘i n temo di una siringa master 
(XIS). 

Al "ritorno'' la variabile numerica XI conterrà la posizio- 
ne cercata, 

Esempio: 

X1S -"ESEMPIO DELLA FUNZIONE PLACE" 

sss«"unz" 

Risultato: 

X 1 “ Ih 

Se la subslrìnga non è presente nella stringa master, al 
ritorno dalla subroutine Xtft conterrà ERR - 

Se invece tutto fila liscio, e questo vale anche per le altre 
funzioni* Xl)t conterrà M OK 


Duplicate: VX =4 

Questa funzione sene a duplicare la siringa X 1 S per un 
ninnerò X i di volte. Il risultalo sarà contenuto \n X.XS 
Esempio: 

X1S— “CHIP *' 

XI =4 

Risultalo: 

\ X s = CH 1 P CI II P CH I P CH IP" 

Esempio: 

XlS-"HELLO" 

XI =.ì5li 


Cbrtimo(fOr& Computet Club 91 




L’ UTILE 


Risultato: 

XflS=*‘ERR" 

1. errore segnalato in quest ultimo caso è dovuto al fatto 
che la stringa avrebbe più di 255 caratteri e ciò, come è noto, 
non è lecito. 

Si ottiene un errore (XOS-'ERR") anche se XI è minore 
di due, pei i motivi che ben à facile immaginare. 

Centratura: YX=5 

Questa funzione visualizza X 1S (centrata in orizzontale) 
sulla riga in cui si trova il cursore al momento della 
chiamata. 

X 1$ non deve possedere più di 4() caratteri, pena la con- 
sueta segnalazione d'errore (Xll$=“ERR"). 

Print Al: YX=6 

Questa funzione gira solo sul Commodore 64. poiché si 
serve della routine "Plot" del Remai, il Sistema Operativo. 
Se volete saperne di più. leggete gli articoli sui Kcmal che 
C.C.C. ha pubblicato in passato, 

[ primi quattro caratteri di Xl$ {che NON saranno stam- 
pati) devono contenere le coordinate della cella in cui si 
vuole che venga stampato il primo carattere delia stringa. 

Gli esempi chiariranno ogni dubbio. 

Volendo stampare la parola "DRIVE" sulla nona riga a 
partire dalla colonna 16. si dovrà effettuare: 
XIS=“1609DR1VF" 

Le colonne sì indicano con un numero da 00 (zero zero) a 
39. le righe con un valore da 00 (zero zero) a 24 (lo schermo 
é composto infatti da 25 lince, ciascuna delle quali possiede 
40 caratteri). 

N.B. il programma non effettua controlli sulle coordinale 
(per motivi di spazio): valori eccessivi provocheranno mal- 
funzionamenti del sistema, dai quali si esce fortunatamente 
per mezzo di Run/Stop & Restore, 

Il programma dimostrativo è molto semplice e non neces- 
sita di spiegazioni. 

100 REM ESEIIFia D ’ USD 
110 REM ELABORAZIONE 01 STRINGH 
E 

1B0 REM PER QUALSIASI COnfIDOORE 
130 REM CLA FUNZIONE 6 FUNZIONA 
SOLO 

140 RED SUL C-S4) 

1S0 : 

1G0 INPUT "FUN2I0NE YX C1/63":Y 
X 

170 INPUT “STRINGA X1$";X1$ 

1 80 INPUT “STRINGA SS5" : SS* 


130 INPUT “MALORE XI"; XI 
£00 GOSUB 13300 

210 PRINT , 'FUN, = ”YX; PRINT "X0S-*’X 
0$: PRINT , ’XÌS=*”XÌ* 

220 PRINT"X1 = *‘X1 :PRINT”XX$“"XXS 
; GOTO 1G0 
300 : 

3939 END 

13300 X0$-”OK'’ : NX-LENCX1S3 : QN YXG 
OTD 13310,13320.13330,13350 
, 13360 , 13370 

13310 XXS-LEFTSC XI* . XI 3 +SSS+RI GHT 
StXIS. NX-X1 3 : RETURN: REM IN 
SERI MENTO 

13320 XX$-LEFTS(X1*. XI 3 +SSS+R I GHT 
SCX1S, NX-X1 -LENC SS* 3 3 : RETUR 
N : REM SOURAPF. 

13330 FOR 5J-1 TO NX;IF MIOSCXIS, 
S J , LEN C SSS 5)<> 55$ THEN NEXT 
:X0$-"ERR“; RETURN 

13340 X1-5J:SJ-NX; NEXT: RETURN; REM 
PLACE 

13350 IF NX*X1> 255 OR XKE THEN X 
0$-”ERR” : RETURN 

133SS XX$«“" :FOR XS-2 TD X1:XX$-X 
XS+X1S: NEXT: RETURN: REM DUP 
LICA STRINGHE 

13360 IF NX> 40 THEN X0$- "ERR" : RET 
URN 

13365 PRINT TABC20-NX/23 ; XI* : RETU 
RN 

13370 IF LENCXl* )<5 THEN X0S-"ERR 
RETURN 

13372 POKE 7B3,PEEK(7Q3> AND 254; 

POKE 7B1 .UALCMIDSCX1S , 3, 23 ) 

133B0 POKE 7B2 , QALC LEFTSCX1S , 23 3: 

SYS65520: PR INTRIGHI* CX 1* . NX 
-43 : RETURN: REM AT 

13390 REM UAR. DA DEFIN . PRIMA DI 
□□SUB 

13332 REM XI*. XI , SS*. YX CUEDI ART 
I COLO 3 

13339 REM ELABORAZIONE DI STRINGH 
E 


1 3400 Linee in bassa risoluzione 

(Sol» per C/64) 

Con questa routine è jwssibile tracciare ‘‘linee" sullo 
schermo in bassa risoluzione, ovvero in modo testo. 


92 - Commodore Computer Club 



L’ UTILE 


Il risultato è senza pretese, ma può esser considerato 
come valido strumento per capire come si gestiscono le linee 
(anche in alta risoluzione). 

Prima di effettuare il GoSub £ necessario assegnare un 
valore alle seguenti variabili: 

XI/Y1: contengono rispettivamente 9 ascissa (range 0-39) e 
l'ordinata {0-24) di uno degli estremi della linea 
X2/Y2: contengono rispettivamente l'ascissa e l'ordinata 
dell'altro estremo della linea, 

X4: contiene il codice schermo dei caratteri ( PokeCode) che 
formeranno la linea, 

X6: contiene il colore dei caratteri che compongono la linea 
( secondo fa solita tabella fi- 15 }. 

La linea, è superfluo dirlo, cancella tutto ciò che 'trova' 
sul suo percorso c viene tracciala in un tempo più che 
accettabile 

La submarine effettua un controllo ^ui valori delle coor- 
dinale: se non rispettano l'intervallo lecito* la linea non 
viene tracciata e la routine ritorna assegnando alla variabile 
X0$ il solito l *ERR'\ In caso contrario conterrà 'OK 
Volendo piotiate volo un punto c non tracciare un intera 
linea. £ sufficiente dare ai due estremi k stesse coordinate 
{X1=X2. Y1^Y2). 

Il Demo pubblicato offre quattro opzioni: un ventaglio, 
dieci linee casuali, un'ellisse c una sinusoide. Queste ultime 
sono un esempio di plottaggio di singoli punii. 

100 REM ESEMPIO 0 1 USD 
110 REM LINEE IN BASSA RISDLUZI 
ONE 

1E0 REM PER C/64 
130 : 

140 POKE 532B1,7:FQKE S3E80 , 7 : P 
OKE 646,6 
150 PRINTCHRffit 1473 
160 PRIMI TABC‘11 J : "SCLEGL I” 

170 PRIMI ; PRINT”! ELLISSE! " 

180 FRINIRE UENTAGLIO” 

130 P R L N I ” 3 DIECI LINEE CASUALI 

ii 

500 PRINT“4 SINUSOIDE " 

510 FRI NT’" 5 RITORNO AL BASIC” 
530 GET A$:1F A$<‘ , 1” OR A$> ”5“* 
THEN 530 

540 PRI NTCHRSC 147 ) : ON UALCAS1G0 
IO 550,560,310,350,390 
550 X4-01 : X6=1S»RN0C1 J : FOR 1=0 
IO 3S0 STEP 3 

560 Xl-SINC I*tr/1B0) *18+50 : Y1-C0 
SC I*ir/180 J*10 + 15: X5-X1 : YS-Y 
1: GOSUB 13400: NEXT 
565 POKE 19B,0:UAIT 139,1: GOTO 


150 

500 X4-45: X6-6: X5-13: Y5-54: FOR 
1-0 IO 39 STEP 4: X1=I : Yl-0: 
6DSUB 13400: NEXT 
590 POKE 130,0; WAIT 130,1: GOTO 
150 

310 X4-H6: XB-5: FOR 1=1 T0 10: XI 
-40*RNOCI): X5=40*RNLK I> 

350 Yl=55*KND(.l): YB-B5+HNDC 1 ) : G 
□SUB 13400: NEXT: POKE 198,0: 
UJA1T 198 , 1 : GDTO 150 
350 X4=45:X6=0: FOR 1=0 T0 39: XI 
-1 : Y1-5INC 1*50/ 100 )*15+15 
355 XB-X1 : Y5-Y1 : GOSUB- 13400 :N£X 
T 

360 POKE 198 . 0 : UA I T 198.1: GOTO 
150 

330 SYS5048 
400 : 

3999 END 

13400 X0S-”OK”:1F X1<0 OR X5<0 OR 
XI >33 OR X5> 33 THEN 
RR"; RETURN 

13410 IF Y1<0 OR Y5<0 OR Yl>54 OR 
Y5>54 THEN X0$= "ERR " : RE1UR 
N 

13450 YX — CX1-XB1/40: YY~- C Y 1 -YB ) / 
40 

13455 Ytì-INTC 10B4+X 1 + I NT C Y 1 )*40 ) 

13430 Y9-INTC 1054+X5+INTCY5 j^401 

13435 1F YB> Y9 THEN 13470 

13437 GOTO 13457 

13440 POKE YB , X4 : POKE 54575+YB,X6 

13455 X1“X1+YX: Y1=Y1+YY 

13457 YB“INTC10S4+X1+INT(Y1 )*40> 

13458 IF YB> =Y9 THEN POKE Y8,X4:P 
OKE 5457E+YB, X6: RETURN 

13465 GOTO 13440 

13470 X7-X1 :X1"X5; X5-X7:X7*Y1 ^1 = 
Y5: Y5-X7: GOTO 10050 

13431 REH XI , Y1 . .COORDINATE E5TRE 

no 1 

13435 REO X5.YB. .COOROINATE ESTRE 

no 5 

13493 REM X4 CODICE SCHERHO C 

ARATT , 

13494 REH X6 COLORE DELLA LIN 

EA 

13495 REH X1-X5 0 . . . 39 ** Yl-YB 0 
. . .54 

13433 REH LINE... IN BASSA RISOLO 
2 IONE 


Commodore Computer Club - 93 


L’UTILE 


Come realizzare renciclopedia e utilizzarla nei propri listati . 

A i tenori che hanno acquistalo per la prima volta questo numero di (ommcKlorc Computer Club, illustriamo qui di seguito, in 
breve, i vantaggi derivanti dalla raccolta proposta. Questa, a pensarci bene, è la versione Superiore" della rubrica 1 RIHA e 
potrebbe anche denominarsi. ., "Una schermata '! 

Oltre che utili per costituire un ‘enciclopedia, i brevissimi sottoprogrammi pubblicati su ogpvi numero, sono anche validissimi 
strumenti di studio per coloro che desiderano approfondire le proprie conoscenze del Basic, esaminando, scoia fatica, particolari 

routine o insolite tecniche di programmazione. 

# Dato che può esser “chiamala'’ più di una volta nel corso di un programma, nessuna routine contiene istruzioni dd tipo DATA 
oppure DIM . allo scopo di non creare confusione col listato principale. 

• Nessuna routine può far riferimento ad altre routine dell enciclopedia. 

# Nessuna routine può contenere variabili "banali" (A, AS, eccctcrakma solo variabili poco usate (Xl$„ X8, Yt)%. eccetera). 

* Ogni routine deve apparire, per intero, sullo schermo del computer e consentire, proprio per questo motivo, di essere esaminata 

comodamente 

• Ogni routine deve esser numerata secondo uno standard che ha la particolarità di esser ricordalo facilmente: 


Ridile 

XXYOO Prima riga del soUoprogr&mma 

XXY89 Ultima riga utile de! sotloprogramma 

XXY90 REM Prima riga di spiegazioni 

XXY99 REM Nome della subroutine 

in cui XX sono due valori variabili da IO a 63; Y £ un carattere numerico compreso tra <le 9 
Qualsiasi subroutine, in altre parole, inizia con un numero, di cinque caratteri, che termina semprt con "00". La stessa subrouime, 
d’altra parte, ha Fultima riga numerata con "99“. Digitando, ad esempio: LIS I 10800-10899 
si avrà la certezza di veder apparire sullo schermo, per Intero, la routine il cui nome si trova nella riga 10899 

Puma di accedere alla routine, fe necessario assegnare, alle variabili indicate con REM da riga XXYH9 a XX Y98, particola n valori 
per il suo corretto funziona me rito A] "ritorno" una o più variabili conterranno il risultato ddLeiabof azione. 

In questo modo, per esser piu chiari, è possibile simulare alcuni comandi di versioni Basic avanzate oppure, addirittura, creare 
nuove e inedite istruzioni Ad esempio, il comando, SOUND 1.800*500 

che, nel C iò. riproduce un suono di tonalità 800 tramite la voce l per la durata 501), potrebbe venir riprodotta, in un ipotetica 
subrettine per il Commodore 64. con: Xl = l:X2=800:X3“S00:GOSUB 12400 
nel l’ipotesi, ovviamente, che la routine in oggetto sia allocata da riga 12400 a 12499 

1 listati pubblicati "girano" su ogni computer, salvo dove indicato diversamente 

E‘ ovvio che nel caso del Vic-2(). (che, come à noto, ha uno schermo di soli 5ftò caratteri)* le subrouiinc 'universali funzionano 
correttamente, ma non possono apparire per intero ip una sola schermata. 

Per quanto riguarda h digitazione, si tenga presente che sulla rivista* per motivi di chiarezza, i comandi e le istruzioni Basic sono 
separaci era broda spazi bianchi Nel digitare te linee di programma, periamo, t opportuno ignorarli altrimenti si rischia di non restare 
in una sola schermata Se, per esempio, leggete: 

12 tOp X 1 = 34: X2 = SOR(X3) + LOGfXI) 
digitate nel modo seguente 
l2KlflXl=34:X2«5QR(X3)4-LOCfXD 

senza . cioè . alcun carattere ds separazione tra comandi cd istruzioni 


Contenuto 


Collaborazione dei lettori 

La collaborazione dea lettori ò gradita, purché si prov- 
veda a inviare almeno tre sottoprogrammi per volta* su 
nastro, disco oppure output di stampante I listati di 
routine che non rispettano lo standard adottato non 
potranno esser presi in co nsidc razione 

Tutti i lavori pubblicali verranno compensati con pro- 
dotti della Systems Editoriale (cassette di programmi, 
libri, abbonamenti* copie arretrate* eccetera!. 






94 - Commodore Computer Club 





L’UTILE 


13500 Comandi fuori programma 

I Solo per 

Questa routine esegue le istruzioni Basic conte mite nella 
variabile alfanumerica X1S, che nati deve essere vuota nè 
contenere più di 39 caratteri (pena X0S = **ERR"J 

Assegnando, per esempio, ad Xl$ le istruzioni "PO- 
KE532HL1 :CLR” ed effettuando il CoSub, lo schermo sari 
colorato in bianco e le variabili verranno annullate. 

11 sol io program ma possiede anche un controllo dì errore: 

i comandi sono insensati, la routine imerrompc il prò- 
gramma c rende noto Terrore che si è verificalo. 

La routine non contamina zone di schermo nò sposta il 
cursore. Funziona in un modo piuttosto insolito: viene crea- 
to uno pseudo schermo a partire da 4M 152 in modo da non 
influenzare lo schermo principale. Lo pseudo-schermo non 
viene visualizzato ma, per il sistema operativo, d quello,., 
ufficiale 11 resto è affidato alla ormai famosa tecnica del 
buffer di tastiera (C.C.C. ne ha parlato più di una volta, ,. ). 
Per non spostare il cursore si sono usate particolari routine 
del KERNAL, il sistema operativo del 064, 

Non £ quindi possibile far eseguire comandi che implichi- 
no un qualsiasi Output sul video* come PRINI\ INPUT, 
LIST cd altri. 

Sj possono tranquillamente utilizzare, al contrario* gli 
altri comandi come, ad esempio, LF.T. POKL e tutte le 
funzioni, 

lì programma dimostrativo chiede una qualsiasi espres- 
sione numerica, proponendone una. Dopo aver premuto il 
tasto Return* il programma pone davanti ai V espressione i 
due caratteri ' A — “ e chiama la submutine. Al ritorno, 
come è evidente. "A" conterrà il risultalo, che verrà subito 
visualizzato. 

La seconda parte del Demo chiede un qualsiasi comando, 
come ad esempio l *POKE532Kl,l " (digitate le virgolette 
prima e dopo perché all’ interno, è presente una virgola, 
altrimenti viene segnalato F.xtra Ignored). Se non vi sono 
errori il comando sarà eseguito; in caso contrario viene 
comunicato quale errore si è verificato (provate a sbagliare 
di proposito... ). 

100 REtl ESEMPIO D’USCJ 
110 REM PER COMANDI FUORI PRQGR 
AMMfì 

120 REM SENZA INFLUENZA SULLO S 
CHERMO 

130 REM SOLO PER C/64 

1 50 : 

160 PR I NTCHRS C 147 ) ; I ABC 10) ; ” IN 
TC20+SQRC6000+400)+3te/CPI J 


170 PRINTCHRSC 19) INPUT “ESPRE 
SS . " ; XlS 

180 XlS* "A* ” + X 1 $ : G05UB 13500 
210 PRINT : PRI NT "RISULTATO: " ; A 
220 PRINT : PRINT”PREMI UN TASTO” 
230 POKE 198,0:UAIT 19B,1:P0KE 
198,0 

240 X1S-” ” : PRINTCHRSC 147) ; : INPU 
T "COMANDO CES,: P0KE532B1 , 

1 ) *’ ; XlS 

250 GOSUB 13500: PRINTX0S 
2B0 IF X0S-*'ERR” THEN PRINT: PK 1 
NT "TROPPE O NESSUNA LETTERA 
I ” : END 
270 : 

9999 END 

13500 Y5-49232 : X0$“’’OK" : IF LENCX1 
$)<1 OR LENCX1$)>33 THEN X0 
S’* ,, ERR" : RETURN 

13505 POKE 703 , PEEKC7B3) OR 1 : SYS 
E5520 : POKE 830, PEEKC701 ) : PO 
KE 831 , PEEKC 792) 

13510 POKE 648, 192: PRINTCHRSC 147) 

; XlS 

13515 PR INT ”C3 DOUN3GOTO13530” : RE 
M ATTENZIONE A RIMUNERARE 
13530 

13520 POKE 631, 19: POKE 632,13:P0K 
E 633,13 

13525 POKE 634,13: POKE 13B,4:END 

13530 PDKE 640,4: IF PEEKCY5)<>63 
THEN 13580 

13535 PRINTCHRSC 147) ; "QUESTE ISTR 
UZIQNI NON SONO CORRETTE:” 

13540 PRINT: PRINTX1S 

13545 PRINT: PR I NT "PRDU0CAN0 INFAT 
TI IL. SEGUENTE CRUSD ERRORE 
CRUQFFD : ” : PRINT 

13550 FOR Y7-0 TO 39: POKE 12S4+Y7 
, PEEKC Y5+Y7) :NEXT: POKE 198. 
0: X0$-"ERR" : END 

13580 POKE 783, PEEKC7B3) AND 254: 

POKE 701 . PEEKCB30) : POKE 782 
, PEEKCB31 ) : 5YS65520 

13590 POKE 198.0: RETURN 

13591 REM LA UAR I AB 1 LE XlS DEUE C 
□N- 

13532 REM TENERE I COMANDI DA E5E 
GUISE . 

13599 REM NOME: COMANDI FUORI PRO 
GRAMMA 


Commodore Compu rei Club - 35 


L’UTILE 


13600 OR esclusivo 

(Solo per C/64) 

lì Basic V2 del Cto4 non offre la possibilità di effettuare 
questa operazione logica, disponibile soltanto rn 
Asse mbler* 

Questo sotto programma è infatti una brevissima routine 
in linguaggio macchina: permette di calcolare l'OR esclusi* 
vo tra due operandi i cui valori possono variare tra zero e 
65535, 

Si assegnano ad XI e X2 i due operandi: si otterrà il 
risultato nella variabile n umerica X Y : valori di X 1 oppure di 
X2 che non rispettano l'intervallo stabilito daranno luogo al 
consueto messaggio di errore (X0S=“ERR ’). 

E' d'obbiigo però dare una descrizione dt questo operato- 
re logico binario; la “tabella della verità"' è la seguente: 


Input 


Output 


“B” 


Q 

0 

0 

l 

1 

0 

t 

0 

1 

0 

! 

1 


Si noti che il risultato è unitario solo quando i due bit in 
Input sorto opposti tra loro. 

Questa operazione logica binaria t molto utile soprattut- 
to per cambiare di stalo uno o più bit. 

Per commutare il terzo bit di un byte, ad esempio, è 
sufficiente compiere un EOR (Or Esclusivo) fra il byte in 
questione e una “maschera'' che ha solo il bit 3 settato 
(eguale, cioè, ad 1), 

1) programma dimostrativo commuta in continuazione il 
bit 7 di una cella video ottenendo il lampeggio del carattere 
che si trova in quella locazione, 

Il bit 7 del codice Pokc di ciascun carattere indica infatti se 
il carattere stesso deve essere visualizzato in positivo oppure 
in re verse (bit 7 settato — re verse, bit 7 nullo = positivo) 

100 REM ESEMPIO D'USO 
110 REM OR ESCLUSI UO CEDR) 

1£0 REM PER C/64 
130 : 

140 PRINTCKRSC 147 j TABC S) "LETTE 
RA LAMPEGGI ANTE" 

1S0 POKE 10E4,8 

160 FDR G-X TD E00:NEXT 


170 XI“PEEKC10E43 : XE-1E8: GQSUB 
13600 

180 POKE 10E4 , X Y ; GOTO 1G0 
180 : 

3939 END 

13600 Y1-679:REM START L . M , RILOC 
ABILE 

13605 X0$“ *QK " 

13610 IF X1<0 OR XI > 65535 OR XE<0 
OR XE> 65535 THEN X0$-"ERR" 
: RETURN 

13690 POKE Yl.IBSrPOKE Y1+E,73:P0 
KE Yl + 4 1 133: POKE Y1+5 ,E51:P 
GKE Y 1 +6 t 1 68 

13695 POKE Y 1 +8 , 73 : POKE Yl+10, 133 
: POKE Yl+11, E5E: PQKE Yl+12, 
86 

13630 YE-INTCX1/E56); Y3“Xl-E56*Ya 

1363S Y4-INTCXE/E563 : Y5-XE-556*Y4 

13640 POKE Yl+1 , Y3: POKE Yl+3 t Y5:P 
□KE Y ì *7 . YE : POKE Y1+3 1 Y4:SY 
SY1 ; REM ATTENZIONE 

13650 XY-PEEK CEBI )+PEEKC2S2) *856 

13680 RETURN 

13680 REM PRIMA DI EFFETTUARE IL 
GOBUB 

13681 REM LE UARIABILI XI ED XE □ 
E UGNO 

13689 REM CONTENERE GLI OPERANDI 

13633 REM UEERA 1 EFFETTUATA L'DPE 
RAZIONE 

13584 REM DI OR ESCLUSI UD (XY1, 

13635 REM (0,03-0 (0,13(1,03-1 CI 
( 11-0 

13538 REM NOME: OR ESCLUSI UD 


13700 Bit irnage su Mps 803/801 

(Per qualsiasi Commodore) 

Consente di disegnare in alta risoluzione sulle stampami 
MPS H03 ed MPS Hill le quali, lo ri badiamo, sono completa- 
mene sofl -compatì bili. 

Si assegna alla matrice X1S(X) l'immagine che si vuole 
mandare in stampa, X può variare ira zero e sei poiché la 
testina è formata da sette aghi, 

I punti “accesi", ma à meglio dire che saranno stampati, 
devono essere rappresentati da un asterisco (*)- I punti 
spenti, invece, possono essere rappresentati da un qualsiasi 
altro carattere. 


96 - Commodore Computer Club 


L’UTILE 


[ e sette varìbili con indice devono avere tutte la medesi- 
ma lunghezza, comunque non devono contenere piu di 1(1 
caratteri, pena ii solito messaggio di errore tXOS = "KRR">. 
Prima di effettuare il (ìoSuh si deve però assegnare alla 
variabile numerica X2 uno dei seguenti valori: 


X 2 =< > : dopo la stampa in alta risoluzione, ss ritorna in modo 
normale e viene effettuato un camage Return 
\2 = 1: come prima, ma senza carnage Return 
\2 >1: non si ritorna al modo normale, nè si effettua un 
ritorno di carrello, consentendo la stampa di più caratteri 
programmati allineati. 

L'Output ed il listato stesso del programma dimostrativi 
dovrebbero spazzare vin ogni dubbio: vengono stampati 
una greca (assegnando ad X2 un valore superiore ad uno, in 
questo caso tre) ed il Logo della Commodore (X2 = l), 

F' consigliabile, per comprendere meglio il funzionamen- 
to del sol (opro gromma, consultare il manuale della 
sta Riparile, 


100 REM ESÈMPIO D 1 U50 
110 REM HIRE5 SU STAMPANTI CO fin 
ODORE: 

180 REM riPSB03/e01(E COMPATIBIL 
I 3 

130 REM PER QUALSIASI COMMODORE 
140 : 

150 PR I NTCHRSC 147 ) : PR I NI “ATTE NO 
ERE £0” 

1 SS : 

160 X1SC0)-"**** ** 

170 XI SC 1 J-" .* . " 

1B0 X135C B 3 “ ”»*«• 

130 XI SC 33 " “ *** 

800 X1SC43“ M *** 

£10 Xl$(5)~“ 11 

EE0 X1$CS)“ *“ 

E 30 X8"3 : POR 1-0 IO E0:GOSUB 13 
700 : PR I NTCHRS 1 19 3 I : NEXT 
840 OPEN 4,4: POR 1*1 TO 5: PRIMI 
#4 , CHR$t 153 ; NEXT: CLDSE 4 
E41 : 

848 REM ****** LOBO COMMODORE 

* + * ♦ m m 

E43 : 

850 X1SC03 "” * *** * ' 1 ” 

E80 X1$U >-“* ******" 

E70 X1SCB3-”** 1 1 * 

800 XlSC3>^ ,f ** 

£30 Xl$C4)-“** * 1 ‘ M 
300 X1SC53- 1 ' ■**♦***» 

310 X1SC6)-” 1 ’ 1 ' " 


3E0 XE“ 1 : GOSUB 13700 -OPEN 4,4: P 
R I NT#4 * 11 LOGO COMMODORE " : CL 
OSE 4 
900 : 

3399 END 

13700 X0$- ‘‘OK " : FOR X3-Q TO 6 

13705 X1-LENCX1SC03 3 : IF LENCXISCX 
9)30X1 OR Xl>10 THEN X0S-” 
ERR ”: RETURN 

13710 NEXT 

13715 POR X9~ 1 TO XI : XKX93-0: POR 
XB-0 TO B 

13780 IF fi I D$ C X 1 S C XB 3 , X9 , 13 — ”*" T 
HEN XI CX93-X1 CX93+8TX8 

13785 NEXT : XI CX93-X1 (X93 OR 18B:N 
EXT 

13735 OPEN 4 , 4: PRINT#4, CHRSC63 : : F 
□ R X3-1 TD XI : PRINTfH , CHRSC 
XHX93 3 : : NEXI 

13736 IF X8-0 THEN PR I NT#4 t CHRS ( 1 
5 3 : GOTO 13740 

13737 IF X0~1 THEN PR I NTfc4 t CHRS C 1 
5 3 : : GOTO 13740:REM CALTRI U 
ALDRI LASCIANO INUAR.3 

13740 CLOSE 4: RETURN 

13730 REM UARIABI LI : 

137S1 REM X 1$ r, X 3 » IMMAGINE DA SI 
AMPARE 

13758 REM X DA 0 (ZERO) A B (7 RI 
GHE3 

13794 REM X8*0 RIT- CARR , E MODO 
NORM . 

13795 REM X8-1 MODO NORM, SENZA R 
ETURN 

1 3796 REM X8 <> 0 ED 1 ÌNUAR1 

AIO 

13737 REM CUEDI ARTICOLO SU C.C.C 

. 3 

13739 REM HIRES SU MPSB03/B01 


1 3800 Messaggi in ertended 
Background Color Mode 

IPer C/M) 

Il circuito integrato video del C7M detto anche: 
V1C il) 0 mollo sofisticato e offre molteplici possibilità di 
visualizzazione. Quasi sempre però, a calivi del [imitalo 
Basic residente, privo di istruzioni specifiche per questo 
circuito, i nostri programmi si limitano al modo testo. 


Commodore Computer Cìub - 97 


L’ UTILE 


Ecco alcune possibilità del circuito VIC li: 

• modo testo semplice; 

• modo testo multtcolor. 

• m odo te sto ex t . backgrou nd ; 

• caratteri definibili dall'utente: 

• alta risoluzione bit map; 

• bit map multicoìor; 

• gestione imerrupt; 

bassa e alta risoluzione nello stesso istante (raster 
resìster): 

• gestione di ottosprite dalle infinite possibilità (collisioni, 
movimenti ed altro}; 

• spnte multicolori 

• scrollmg “fine'*; 

• gestione di ben 16 spritc. par se ricorrendo a qualche 
artificio 

Il lutto è relativamente complesso da programmare: sono 
inatti necessarie laboriosissime operazioni di Poke che aiu- 
tano. è vero* a conoscere meglio la macchina* ma certo non 
facilitano la vita al programmatore. Non parliamo poi della 
grafica hit-map, che necessita del linguaggio macchina per 
una gestione sufficientemente veloce. 

La subroutine pubblicala serve a stampare messaggi sul 
video* i cui caratteri abbiano un colore di sfondo diverso 
dallo sfondo dello schermo { ex tende d background colnr 
mode oppure, più semplicemente. EBCM l. Tale tecnica si 
rivela molto utile nei programmi interattivi, quando è ne- 
cessario richiamare ('attenzione dell'utente per riferire un 
messaggio di particolare importanza. 

11 sottoprogram ma non è comunque un mezzo sufficiente 
per utilizzare appieno LEBCM, ma è senz'altro un valido 
strumento didattico. 

Prima di effettuare il GoSub, come di consueto, alcune 
variabili devono contenere determinali valori che condmo 
neranno tl funzionamento della routine* e prettamente: 
\t%: è la stringa che sarà stampata sul video usando 

1EBCM; 

X5-Y5: contengono le coordinate { rispetti vomente X e V . la 
pnma da II c 39* la seconda da li a 241 che determinano la 
posizione sul video in cut inizierà la stampa delia stringa Da 
Piotare che quando si chiama la subroutine lo schermo viene 
pulito con CHR5U47); 

Y1-Y2: contengono rispettivamente il colore dello schermo 
(loc. 53281) e il colore del bordo (loc, 53280); 

Y3: è il colore dei punti accesi, ovvero tier caratteri che 
compongono il messaggio (tabella 0-15); 

Y4: contiene il colore dello sfondo dei caratterr, 

XY; rappresenta il tempo (in secondi) durante il quale il 
messaggio resta sul video con i'EBCM attivato Una volta 
scaduto il Tempo, il cursore, lo schermo e il bordo n prende 
ranno i colori che avevano al momento della chiamata 
Viene anche cancellato il video e restituito il controllo al 
programma principale. 


N.B.i valori spropositali nelle variabili sopra deserte te pro- 
vocheranno. nei lìmiti del possibile* il messaggio di errori: 
<Xb$=“ERR"), 

Il programma di esempio dell'uso visualizza la parola 
"ATTENDI'" al centro dello schermo in EBCM. In seguito 
chiede tutti ì parametri necessari per visualizzare un secon- 
do messaggio e l'eventuale presenza di un errore viene 
comunicata. Ricordate che NON è possibile, in EBCM* 
visualizzare caratteri il cui Poke Code (codice schermo) sia 
maggiore di 63 (otterrete altri caratteri senza senso). 
Perchè? 

Spiegazione di fantasia: 

None giusto che si usufruisca di un 'interessante particola- 
ri tà e non se ne venga in qualche modo penalizzati. 
Spiegazione logico - informatico - razionale: * 
L’argomento è relativamente complesso ma, come al soli- 
to, la spiegazione la troverete su qualche fascicolo di C.C.C 

110 REM MESSAGGI IN EXTENDED 
150 REM BACKGROUND COLOR MODE 
130 REM SOLO PER C/G4 
140 : 

1S0 PR I NTCHRSC 147 ) 

160 PRINT" TRA POCO COMPARI RA > 
UN MESSAGGIO, * . " 

170 FDR 1-0 IO 1000:NEXT 
1B0 X5-14: Y5-12: Yl-1: Y2-3: Y3-2: 
Y4-15:X1$~” ATTENDI ";XY-5: 
GDSUB 1 3800 

190 FRI NT "ORA IMMETTI TU I UALD 
RI -..* 1 

500 INPUT M X COORDINATA" ; X5 
210 INPUT "Y COORDINATA" ; Y5 
220 INPUT "COLORE DI SFONDO* 1 ; VI 
230 INPUT "COLORE DEL BORDO" ;Y2 
240 INPUT "COLORE DEI PUNTI ACG 
ESI"; Y3 

250 INPUT "COLORE DEI PUNTI SPE 
NT I " ; Y4 

260 INPUT "MESSAGGIO" ; Xl$ 

270 INPUT "TEMPO DI PERMANENZA" 

; XY 

2B0 GOSUB 13B00 

290 PRINTCHRSC 147 } ; X0$ 

300 ; 

9SSS END 

13B00 X7-255: YB-532S0: X0S-"DK" : IK 
XS< 0 OR X5> 33 OR LENCXlfi» 
2S4 THEN X0S-"ERR" : RETURN 
13805 IF Y5<0 OR YS>24 THEN X0S-" 
ERR" : RETURN 

1 38 10 IF XY< 0 THEN X0$- "ERR ” : RETU 
RN 


90 - Commodore Computer Club 



L’ UTILE 


13915 1F V 1 < 0 OR Y5<0 UH y 3< 0 OR 
Y4<0 OR Y1>X7 OR Y9>X7 OR Y 
3>X7 OR Y4>X7 THEN XY--1:Q0 
IO 13910 

13995 PRINTCHRSt 147) : PQKE 951. REE 
K ( YB+ 1 3 : PQKE 959 , PEEK C Y9 ) : P 
QKE 953, PEEKC646) 

13030 PQKE 53955, PEEKC53965) OR 6 
4 

13640 POKE 793, PEEKt 793) AND 054: 

POKE 791, Y5: POKE 799. X5: SYS 
65590: X1S-CHRSC 19) +X1S 
13950 POKE YB+ 1 , Y i : POKE YB,Y9:P0K 
E 646 , Y3 : POKE YB+3 . Y4 : PR I NT 
X1$:Y9-XY*950 

13955 POR YB-0 TQ Y9: NEXT: POKE Y9 
+1 , PEEKC951 3 : POKE YS , PEEKt 9 
593: POKE B4B , PEEKC9533 
13950 POKE 53965, PEEKCS39G5) AND 
191 : PRINTCHRSt 147) : RETURN 
13090 REM X5-Y5 COORTI/STAMPA Xl£< 
-HESS. 3 

13891 REM Y 1 “SFONDO Y9- BORDO 

13BS9 REM Y3-SCRITTE Y4- SF . SO 

RITTE 

13894 REM XY-SECONDI CIRCA DI PER 
MANENZA 

13999 NOME: MESSAGGI IN EXT. BACK 
GROUND 

13900 Save & Load pagina video su/da 
disco 

Una routine di uso estremamente semplice che, serven- 
dosi di fjles sequenziali, salva e carica scherniate su floppy 
disk. Vengono salvali l oppure caricali): 

• i caratteri ( LOCHI byte), 

• il calore dei caratteri i altri II Hit) byte \ 

• il colore dello schermo ( l byte). 

• il colore del bordo j 1 byte). 

Eventuali errori che si siano verificati durante le opera- 
zioni dì caneamemo^sal viaggio (drive noi ready, disk lidi, 
file exisiscd altri) vengono im medi a fame me resi nini. 

Prima di CoSub si deve porre in XlS il nome del file' 
schermo che si desidera salvare (caricare) che non deve 
essere più lungo di sedici caratteri; nel caso questa variabile 
stringa sia vuota, il file viene aulomalicamcnle chiamato 
"Schermala”. 

Alla chiamata della routine. X 1 deve contenere"! (uno) 
se si desidera caricare una schermata, un qualsiasi altri ■ 
valore ne provocherà il salvataggio 

E K bene ricordare che ciascun file 'schermo occupa sem- 
pre otto blocchi. 


11® REM UIDED SU DISCO 
140 POKE 539B1 , 1 : POKE 53980, 1 : P 
OKE 646, 14: PRINTCHRSt 147) 

150 FOR 1-1 TD 9: PRI NT "DEMO 
NEXT 

160 PRINT: PRINT: PRINTCHRSt 144 3 ” 
□RA QUESTA SCHERMATA 0IM0ST 
RATI UÀ” 

170 PRINT: PRINT" UIENE SALDATA 
SU DISCO CNOME: HELLO)" 

100 PRINTCHRSC31) "ATTENDI " 

130 FOR 1-1704 TO 1903: POKE 1,9 
5S*RND( 1 3 : POKE 54979+1, 16*R 
NOC 1 3 : NEXT 

900 X1“0: XlS- "HELLO": Gt)SUB 1390 
0 : POKE 53900,0: POKE 53991,0 
910 SYS65409: PRINTCHRSt 14?) “ORA 
UIENE CARICATA ...”: Xl-1 : XI 
$- "HELLO” : GOSUB 13900 
9999 END 

13900 IF LENCX1S3-0 THEN X1S-”SCH 
ERMATA" 

13905 OPEN 8,9. 15, "10": QN X160T0 
13950 

13910 OPEN 9 , 0 , E , X 1 $+ ” , S , li) " : GOSUB 
1 3SBS 

13995 PR I NT#9 , CHRSC PEEK C 53981 3 3 ; : 
PR I NT#3 , CHRSt PEEKt 53980 3 3 ; 

13930 FOR Y5-10E4 TO 5093 : PRINTK9 
.CHRSCPEEKt Y51 3 : : GOSUF 1399 
5 

13935 PR1NT#9, CHRSfPEEKC Y5+54E79) 

3 ; ; NEXT : CLOSE 9:CL0SE 0 : RET 
URN 

13950 OPEN 9 ,e.£,XlS + '‘.S.R-' :G0SUB 
13905: GEI #9 , X9S . X3S : I F LE 
NCXES3-0 THEN X9S-'*0" 

13956 POKE 53981 , ASCCX9S) : IF LENC 
XlS 3 “0 THEN X3$-”0" 

13960 POKE 53990 , ASCCX3S) : FOR Y5- 
1094 TO 9093: GET tt9.X9S.X35 
: I F LENCX9S3-0 THEN X9$-’*0" 

1 3969 IF LENCX3S3-0 THEN X3S-”0“ 

1 3955 POKE Y5, ASCtXSS) : POKE Y5+54 
979 . ASCCX3S3 : NEXT : CLOSE 9:C 
LOSE B: RETURN 

13995 INPUT #8 , X3 , X4S ; IF X4$-"0K” 
THEN RETURN 

13909 SYS65409: PRINTX3: X4S: END 

13991 REM X1S-NQME. Xl-1: LOAD; XI 
-0 : SAUE 

13999 REM NOME :Ul GEO DA/5U DISCO 

Commodore Computer Club - 99 



PERIFERICHE 
QUALSIASI COMMODORE 

Stampare o non stampare? 
Visualizzare, forse... 

A che cosa può servire ia stampante? Quali 
sono le principali caratteristiche delia Mps 
803 e delle sue compatibili? 

di Maurizio tMl' Abate 



er avere un'idea chiara sulla Mps HtB 
è bene conoscere, almeno a grandi linee, 
la storia delle stampanti Commodore de- 
gli ultimi anni. 

La prima (o quasi) stampante a livello 
hobbistico presentata sul mercato fu la 
1525, ai tempi del Vie 2(ì, Poco dopo 
nacque il Commodore f>4. destinato ad 
essere, negli anni successivi, il leader dei 
personal della sua fascia. 

Tutto il software per questo computer 
(Easy Script, Print Shop, Word Pro III, 
Sirnons 1 Basic, Koala Printer, 120 colon- 
ne, eccetera } fu sviluppato in modo da 
funzionare correttamente con la 1525 e 


con la successiva stampante Commodo- 
re, siglata Mps 801, Questa presentava, 
rispetto alla precedente, lievi migliora- 
menti tecnici, poiché era stata progettata 
tenendo corno dell'esigenza di conserva- 
re la compatibilità con tutto il software 
già sviluppato. 

Le prestazioni della Mps 801 non era- 
no. però, eccellenti, tanto che si semi il 
bisogno dì progettare una stampante mi- 
gliore. più robusta, con buona qualità di 
scrittura c velocità di stampa adeguata. 

Nacque così la Mps TO, destinata, 
purtroppo, a scomparire precocemente 


dal mercato a causa della completa in- 
compatibilità con buona parte del 
software disponibile al momento del 
"lancio": qualcuno, in casa Commodo- 
re, dimenticò, forse, che l'utente non 
compra una periferica che non può 
usare.,, 

Ed ecco infine la recente (o quasi) 
comparsa della Mps 803, stampante che 
offre migliori prestazioni c un funziona- 
mento ineccepibile con la massima parte 
del software esistente, grazie al modo di 
funzionare che, dai punto di vista softwa- 
re. è identico alla Mps H41 1 . 


100 - Commodore Computer Club 




PERIFERICHE 


La stampante per il neofita 

Per aiutare quanti non hanno mai sentilo 
parlare ili stampanti, è di 'obbligo chiarire 
i prìncipi di funzionamento dì questa pe- 
riferica ed elencarne i possibili usi. 

La stampante è un mezzo per trasferi- 
re su carta (e produrre, cioè, documenti 
durevoli e trasportabili) i dati elaborati 
dal computer cui viene connessa: posso 
no essere listati di programmi, elaborati 
di word processor, archivi, output di pro- 
grammi gestionali, grafici e disegni di va- 
no ijpo. 

L'immagine è prodotta da una testina 
formata da un certo numero di aghi inco- 
lonnati (sette, nel caso della Mps 803) 
che. trascinata da un motore, stampa i 
caratteri sulla carta. Si nota facilmente, 
infatti, che ogni carattere o disegno è 
formato da più righe verticali, formate, 
ciascuna, da piccoli puntini posti Timo 
sull'altro (dot). 

l a qualità di stampa, cotti è intuibile, 
à tanto più alta quanto maggiore £ il 
numero degli aghi presemi nella testina. 
Nel nostro caso... un attimo di 
pazienza!! 

Le principali caratteristiche 

La M ps 803 £ caratterizzala da dimen- 
sioni relativamente ridotte (un 33x19x7 : 
peso: 2 kg circa ) e da un aspetto gradevo- 
le. E' disponibile in tre colori: nero (per 
C/16 e Plus/4), caffè latte {per C/64 e Vie 
20) e, recentemente, anche in bianco, 
per affiancarla al nuovo Commodore 


08. La differenza, beninteso, si limita 
soltanto al colore c nulla vieta, a un pos- 
sessore di C/64, di comprarla nera, se la 

desidera! 

11 trascinamento della carta è del tipo a 
frizione, come quello dì una normale 
macchina per scrivere; accetta di conse- 
guenza sia il foglio singolo che il modulo 
continuo. Per ottenere, tuttavia, una 
maggior precisione con il modulo conti- 
nuo, è disponibile sul mercato un apposi- 
to accessorio {opzionale), il cosiddetto 
"'trattore' - dal prezzo contenuto, intorno 
alle 30 mila lire. 

La velocità di stampa t accettabile (60 
CPS, Characters Per Second) ed è del 
tipo "bidirezionale ottimizzato’ 1 : ciò si- 
gnifica che la testina stampa sia quando 
va da sinistro a destra, che quando ritor- 
na (a differenza della Mps 801), Il listato 
di un programma di lunghezza pari a 5 
kbytes viene stampato in circa tre minuti, 
tempo più che accettabile. 

Il carattere è composto da una matrice 
dì 7 (altezza delia tesi ina) per 6 dot, co 
me quella della Mps 801. La testina ha 
però dimensioni diverse che contribui- 
scono a conferire al carattere una forma 
più gradevole e meglio leggibile. La qua- 
lità di stampa diminuisce notevolmente 
in modo minuscolo, a causa della man- 
canza di ' discendenti", caratteristici del- 
le letture come la ”p'\ la "g'\ la "y", ed 
altre. In questi casi, infatti, il carattere 
viene "sollevato ’L ma il risultato è co- 
munque accettabile. 

E 1 bene notare che la 81.13 è in grado di. 
stampare tutti i caratteri .semi-grafici 
Commodore, vale a dire i “ geroglifici*' 


scrigrafati sul frontale dei tasti 

Altre caratteristiche tecniche 

B 1 possibile, con la Mps 803, disegnare in 
alta risoluzione (bit image mode), unen- 
do a) testo grafici o tabelle di genere 
diverso. La stampante può cosi, emulan- 
do il plotter, trasformarsi in uno stru- 
mento dalle infinite possibilità, pur aven- 
do applicazioni hobbystiehe: tutto sta nel 
possedere il software adeguato. 

Con la Mps 803 si hanno a disposizione 
solamente ire modi di stampa; normale, 
re verse ed "dongato 1 * (doppia larghez- 
za); non È possìbile il modo Near Letter 
Oualiiy (NLO), il corsivo o il grassetto 
ma, in compenso, utilizzare la 803 t 
estremamente semplice e può portare a 
risultati più che soddisfacenti in ogni 
caso. 

Il numero massimo di caratteri per ri- 
go è fissato in 80. valore ideale per la 
maggior parte delle applicazioni. 

Esistono tuttavia appositi programmi 
capaci di stampare fino 120 caratteri per 
rigo (e scusate se è poco. 

L'interlìnea può essere impostata via 
software oppure via hardware, tramite il 
primo dei due deviatori posti sul retro 
della macchina. Il secondo deviatore 
presente serve ad impostare il numero di 
device che può assumere valore quattro 
<> cinque. 

Oltre alFinterruttore dì alimentazione, 
posto sulla fiancata destra, è presente un 
unico pulsante sul frontale: è il solito 
il paper ad varice 1 *, che serve per fare 
avanzare la carta senza girare manual- 
mente il rullo, La pressione di questo 
tasto durante l'accensione provoca il 
self— test della macchina. 

La spia led rossa, quando è accesa, 
segnala lo stato di ON della stamparne; 
quando lampeggia, invece, vuole segna- 
lare che si è verificato un errore, come 
l’assenza di carta; un cicalino non avreb- 
be tuttavia guasta lo.,. 

La Commodore assicura una durata 
della testina pari ad un minimo di venti 
milioni di caratteri; sarà vero' 7 


QUES T ft E f UHfl STAMPO IH ftLTfì RiSOLUZIOHE 



Commodore Computer Club ■ Wi 


PERIFERICHE 


Le ^compatibiir’ 

J n seguilo al successo della Commodo- 
re. e de 3 C/64 in particolare, molte fab- 
briche di stampanti si sono buttate a ca- 
pofitto nel produrre modelli collegabili 
ai computer Commodore, Tu effetti qual- 
siasi stampante si può collega re grazie a 
particolari interfacce (RS-232. !EE- 
488) . Purtroppo, però, sono totalmente 
incompatibili col software presente sul 
mercato. 

Nascono, cosi, k stampami 803- 
compatibili. C on questo termine si deve 
intendere la completa compatibilità con 
la stampante ' ufficiale’' della Commo- 
dore. Una stampante commercializzata 
con la sigla v ‘ 803 -competi bile" deve esse- 
re m grado di sostituire completamente 
r originate. 

Su questa stessa rivista sono state pre- 
sentate, in precedenza, diversi modelli 
realmente compatibili con la stampante 
in questione. 

Il nastro inchiostrato 

La stampante ha bisogno, ovviamen- 
te, di inchiostro; questo impregna un na- 


stro come mito all 'interno di una cartuc- 
cia, detta enrtridge. di dimensioni ridotte 
che si inserisce agevolmente nell ‘apposi- 
to alloggiamento sollevando il coperchio 
della stampante, fi nastro è disponibile 
soltanto nei colore nero. 

La sua durala, purtroppo, non è ecces- 
siva {[' eufemismo è d obbligo}: appena 
acquistalo, infatti, la stampa è ben mar- 
cata e di buona qualità. Successi vamento 
si assesta sul grigio, rendendo necessario 
il ricambio della cartuccia, il prezzo della 
cartuccia è relativamente ridotto (si può 
trovare anche a 10,000 lire). Gualche 
problema presenta la reperibilità, nono- 
stante la Mps 803 sia tuttora la sola stam- 
pante Commodore n livello hobbystìco 
presente sul mercato. 

Docu men fazione 

fi manuale fornito insieme con la mac- 
china è sintetico ma esauriente e comple- 
to. Consta di 56 pagine solo in lìngua 
inglese. Sarebbe belio se tutte le macchi- 
ne Commodore fossero sempre accom- 
pagnate da documentazione completa, 
chiara, esauriente e, soprattutto, in 
italiano. 


Tiriamo le somme 

Spariamo subito H prezzo: lire 490,000 
IVA esclusa, è la cifra presente sul listino 
ufficiale Commodore, Tuttavia abbiamo 
avuto occasione di vedere in qualche ve- 
trina La Mps 803 (trattore e f .V.A, com- 
presi} intorno alle 400.000 lire. 

Un prezzo senza dubbio contenuto in 
rapporto alle prestazioni delia macchina 
che, unita ad un drive e ad un buon word 
processor, consente (perchè no?) appli- 
cazioni semi — professionali, La stam- 
pante, lo ricordiamo, è anche un mezzo 
prezioso per stampare grafici o listati di 
programma. 

La Mps 803 e le sue compatibili si col- 
legano direttamente al C/64, C/128, C / 
16, Plus/4, Vie 20 attraverso il connetto- 
re seriale. Non è necessaria alcuna inter- 
faccia dato che è sufficiente il cavetto 
fornito nella confezione. 

Per ulteriori informazioni: 

Commodore Italiana 
Via FJli Gracchi, 48 
20092 C irrise! lo Balsamo IMI) 

Tel: 02/61-83,22,45 




I CARATTERI DELLA MPS 803 


PICA MAIUSCOLO - ABCDEFGHI JKLMN0PQRSTUVI4XVZ 
f i c a. m i nusco 1 o - a.bc de f 9 h i 5 K 1 mnoF Tr s t uuuix y z 


OH G Fì T O M 13 I l_l 3C OLO 


3 L- r i 


u 


^ 1 o r^i 

RE VERSE 


rn j. ri lj s* c: c> 1 «d 




-=*. tzi .d -s- E ^ 


PUH TEGA I ATURA E VAR I - ! " ' C > +-£ 15 * TC 3 ■ ; ? , , O 1 234567830 


PIU TUTTI I CARATTERI GRAFICI 


T 02 - Commodore Computer Club 


PRO LOGIC REVOLUTION 

è il n. 1 dei velocizzatori ! 

superiore sia al Prologic-Dos che allo Speed-Dos 

• Loatl sino a 35 volte più velo- 
ce. 

• Save sino a 20 volte più velo- 
ce. 

• File Seq + Rei sino a 10 volte 
più veloce in I.oad/Savc. 

• Visualizzazione indici di ini- 
zio e fine der programma du- 
rante il Load. 

• Ram-Test accorciato 
(N. 0, i sec.) 

• Formattazione veloce in 
35/40 tracce per 664/741 
Blocks Free. 

• Funzioni Old/ Renane - Save 
con Replace corretto. 

• Scratch e Validate 50-60 volle 
più veloce. 

Il PROLOGIC REVOLUTION 

è distribuito in Italia dalla V.C.S. HARD & SOFT 

Per prenotazioni lei. 06/7485079 ROMA 

F sciusi vista per la zona Lombardia: NIWA SI IFTWARE lei. 02/2440776 Via Torino, 80 Sesto San Giovanni (Mi) 

PROLOGIC REVOLUTION T 1QQ (VÌA Forti sconti per quantità. 

Art. 0225 M*Jm IJrJr *UUv (IVA inclusa) Forniture per grossisti, negozi e club. 

La V.C.S. (lislnbuisvr am be > seguenti prodotti: 


Art, 

0100 

Super FaM Load (con Reseli 

1 . 39,000 

Art, 

0170 

Alimentatore 1 64 VI C 20 

L. 

38 000 

« 

0125 


« 79.000 

44 

0135 

Vi/a Star (Cartndge f disco + manuale ) 

L< 

55.000 

«i 

0115 

ISEPIC 

-4 69.000 

14 

0190 

Basetia per 2 Eprom con Svoich -reset 

1* 

19.01) 

«i 

0130 

Programmalo^ di Eprom 

« 179.000 

<4 

0195 

Base ita per 4 sistemi operativi (comm. reset) 

<c 

29,000 

■H 

0130 

Espansione Rom 256 k 

« 109,000 

4M 

0200 

Scheda 5 sistemi operatisi (comm, interno) 

41 

45.000 

« 

0145 

AiignaiticnL +■ Turbo lapt 

« 29.(100 

« 

0205 

Scheda 3 sistemi operativi CI 28 

44 

39.000 

44 

0105 

Fasi-Disk + 

« 39.000 

t< 

0210 

Scheda 4 sistemi operativi per floppy o stamp. 

« 

3y.ooo 

« 

0110 

Turbo Tool Kn 

44 53*000 

44 

0185 

Mietali 300 Baud - Autodial - Autoan&wer 

« 

179.000 

« 

0155 

Analizza : ore e riconosolorc dì inEepriEi 

*4 234.000 

44 

0175 

Caned latori di Eprom 

41 

115.000 

« 

0160 

Mollici BohfJ {Swileh Elciir ) 

44 1 19.000 

41 

0180 

Penna ottica 

41 

39.000 

4t 

0165 

Tti plà user pori 

« *9.000 

41 

02 1 5 

Ventola raffreddamento IMI 

41 

39,000 

« 

0140 

Duplicatore cassette 

« 15.000 

41 

0220 

Dischi 5S.DD (confez, da 100) 

Hi 

d. 1900 


DUPLICAZIONI CASSETTE CONTO TERZI 



Super Reset con Fili Memo- 
ry. 

Edit dello schermo. 

Lavora con cassette in turbo- 
tape. 

Duplica un intero disco in cir- 
ca 20 sec. tramite banali co- 
piatori. 

12 tasti funzione program- 
mati con opzione di ripro- 
grammazione a piacere. 

interfaccia Centronics incor- 
porata. 

Compatibilità 100% con il 
software dello Speed-Dos. 


BUONO DI ORDINAZIONE 


VOGLIATE INVIARMI IN CONTRASSEGNO 


NOME ■ COGNOME 


NOI RIZZO 


CAP Citi A 


N 


PROVINO. A 


N Ari. I 


N Ari 

L 

N Ari 

L 

SPESE SPEDIZIONE 

l 5 eoo 

PAGHERÒ AL POETINO 

L 


V.C.S. HARD & SOFT VIA FESTO PORZIO. 5-00174 ROMA - TEL. 06/7485079 





PERIFERICHE 


QUALSIASI COMPUTER 


Come disegnare 

con il plotter 1520 

Un brevissimo listato , suscettibile di notevoli 
sofisticazioni, per utilizzare senza problemi 
la piccola periferica della Commodore. 

di Michele Maggi 


1 1 plotter 1520 è una periferica piuttosto 
diffusa ma» per uso amatoriale od hobbi- 
stico» non trova una ben precisa applica- 
zione a causa delle sue (imitazioni* 

Il terreno più fertile per un suo utilizzo 
rimane quello dei diagrammi e dei grafici 
c non certo quello della stampa di listati 
oppure di testi a causa della notevole 
lentezza* 

Grazie al suo basso costo* tuttavia, 
molti utenti lo hanno acquistato ma, per i 
motivi anzidciti o non lo usano affatto 
oppure non ne sfruttano a fondo le carat 
teristiche. 

M programma che segue è rivolto pro- 
prio a colorii i qualt, delusi delle modeste 
capacità della periferica, non sanno che 
nella realtà può rivelarsi molto utile in 
più occasioni. 


II programma 

Si tratta di un programma che consen- 
te di disegnare con il Plotter agendo sui 
tasti cursore del computer. 

Vengono offerte le opzioni di setezio 
nc del colore e di spostamento da un 
punto all'altro del foglio con il pennino 
sollevato oppure abbassato. 

E" un programma sicuramente utile 
per coloro che hanno necessità di dise- 


gnare grafici senza tanti problemi e non 
intendono litigare con il manuale di istru- 
zioni. 

Il programma si basa sull’ utilizzo degli 
indirizzi secondari del Ploiter, Onesti, 
come noto, rappresentano i diversi co- 
mandi che è possibile inviare al 152(1. 

Gli indirizzi secondari sono i seguenti: 
Zero (0L E‘ il valore di default, ovvero 
quello che automaticamente viene asse- 
gnato non appena si accende l'apparee 
diro. Con tale impostazione il plotter tra- 
scrive su carta i caratteri alfanumerici 
cosi come provengono dal computer. 

Per esempio, il comando OPEN 0,0 
"apre" il canale di comunicazione per il 
plotter, Aggiungendo l'istruzione 
PRINT±* 4, “Commodore Computer 
Club 11 il messaggio verrà trascritto su car- 
ta, Il numero zero» valore di default » può 
venire omesso. 

L'indirizzo +, 1" permette al Plotter di 
disegnare con linee e punti e di controlla- 
re il movimento della penna. 

L ‘indirizzo "2“ seleziona la penna im- 
primendo lino scatto al revolver porta- 
penne. 

L'indirizzo “3" seleziona le dimensio- 
ni del carattere, 

Gli indirizzi 4. 5 e 6 non vengono ana- 
lizzati* dato che non sono usati nel pro- 
gramma pubblicato. 


L'indirizzo 7 mettali Plotter simulan- 
do lo spegnimento e la riaccensìone della 
periferica Per esempio, le due istruzioni 
OPEN 7*6 t 7:PRJNT# 7 faranno dise 
gnare al Plotter i quattro quadratini che 
vengono disegnati al momento dell'ac- 
censione* riporteranno tutti i valori (re- 
lativi al colore della pernia, alla grandez- 
za del carattere, eccetera) ai valori stan- 
dard. 

Come funziona 
il programma 

Una volta dato il RUN il Plotter viene 
resettato e» subito dopo» vengono richie- 
sti il modo e il colore in cui si desidera 
operare. 

Ciò significa che dovrete premere il 
tasto "M" (muovi) oppure “D" 
(disegna). 

Nel primo caso (M ) sarà possibile spo- 
stare il pennino (tenendolo sollevato) in 
corrispondenza di un punto qualsiasi del- 
la carta. 

Nel secondo (D), invece» il pennino» 
messo in contatto con te carta, si sposterà 
in una delle quattro direzioni. 

In entrambi i casi il movimento verrà 
impresso attraverso te pressione dei tasti 
del cursore in modo identico a quello in 
cui viene spostato il cursore dello scher- 
mo. 

Effettuata in modo analogo la scelta 
del colore (premendo uno dei tasti ,+ N'\ 
,h B’\ “V" oppure “R"), si deve premere 
il tasto "E” (Exit) che permetterà, final- 
mente, di spostare te penna utilizzando i 
tasti cursore 

In qualsiasi momento sarà possibile 
cambiare le opzioni premendo il tasto 
deHasterisco (*). 

Se durante ( esecuzione del disegno si 
preme il tasto Return, la penna tornerà 
all'estremità sinistra dell'asse orizzonta- 
le. 

Su noli che te velocità di spostamento 
è limitata ad un puntino per volta. Se* 
però, premete >E tasto più ( +). ì segmenti 
tracciati avranno una lunghezza dieci 


704 - Commodore Computer Club 


PERIFERICHE 



volle maggiore. Per tornare al tratto mi- 
nore. è ufficiente premere il tasto meno 
(— h 

Struttura 
dei programma 

La linea I7ij apre il canale relativo al 
pini (aggio ni termiti i di coordinate X* 'i 
e ti calia le relativo ai colon delle penne 
La linea 2(10 resetta il Plotter 
La linea 210 manda alla subroutine 350 
che fissa il modo (disegno oppure plot* 
t aggio) e i colori. 

Le linee 220-300 si occupano di stabili- 
re i movimenti da effettuare oppure le 
linee da tracciare e, se viene premuto il 
tasto di asterisco C) consentono il ritor- 
no al menu 

Le linee 330 e jUn disegnano e sposta- 
no la penna. 

Analisi 

dei comandi possibili 

In questo programma vengono utiliz- 
zati solo due dei sei comandi di plot (ag- 
gio che abbiamo a disposizione. 

Questi sono: "M’\ che muove il penni- 


no alle coordinate specificate, e “D" che 
disegna 

Gli altri comandi, non usati nel listato 
dì queste pagine, sono: 

l 'H" che muove verso il punto di origine 
assoluto. 

‘T* che stabilisce un punto di origine 
relativo alia posizione attuale, 

+ 'R" che muove verso le coordinare *‘X ' 
e l Y ' che si riferiscono, però, al puniodi 
origine relativo fissato da l T\ 

*J" che sposta la penna in modo identico 
a “R'\ ma col pennino abbassato sulla 
carta, 

m 

Pensate 
di esser bravi? 

Con sigi istmo ni nostri lettori di realizzare, 
sulla fiil.sitrijtii dì quello che compare in 
queste pagine, un programma piu 
versatile. 

infatti possibile aggiungere comandi 
in grado di tracciare circonferenze, ret- 
tangoli, ellissi nei pimi piu disparati del 
foglio. 

Non si dimentichi, inoltre, la possibilità 
di trascrivere messaggi oppure, per chi e 


veramente bravo, disegni memorizzati 
precedentemente su disco o nastro. 

Se ri tene! e di aver realizzato un pro- 
gramma interessante, telefonate in Reda- 
zione (02/8467348) in modo da concorda- 
re la pubblicazione dei vostro lavoro. 


tee 

150 

130 

1*0 

150 

160 


REM CQrtE DISEGNARE COL POTI 
ER 1550 

RE n E QUALSIASI COMPUTER CD 
MHODORE 


t 

REM 


BY MICHELE MAGGI 


US-CHRtf 16) QSCHRSC147T i 
-CHR5C 191 

X®“CHR*t 14 7’/ "5CEGLERE 

■QPZI 0 NE* + CHR*t 146 >+‘' 


TI 


170 

160 

1 50 

,500 
Ì5 -0 
5?0 
530 

540 

550 

560 

570 

leu» 

590 

300 

310 

350 

330 

3*0 

1350 

360 

370 

3B0 

390 

*00 

1 4 1 ® 

450 


IF 
IF 
IF 
1 F 
IF 


4 30 


1440 


460 


460 


4 70 


OPEN 1,6,1; OPEN 5,6,5 
ns-us+" muoui h : 0i-u*+"0isE 

GNA 1 ': N*-Uf *"NER0 

B*-W*+ M BLU ,l :U*“Wl + ,, UERDE" 

; R5-WS+ "ROSSO" : 

□PEN 7,6 l 7:PRINT#?:CL0SE 7 
FRIMTX*:G05UB 35® 

GEI AS:IF AS- i,,N THEN 550 
IF PJ--+- THEN tu»10 r PR I NICH 
R1U9) TABceem* GOTO 550 
IF AI- , - h THEN W-1PRINTCHR 
1(1^ T AB C 56 >AS : GOTO 550 
IF A*-CHRSU45) THEN Y*Y*W 
AS-CHR*C m THEN Y-V-U 
AS-CHRIC531 THEN X-X«-lil 
A£-CHRltl57) THEN X-X-U 
M-"* - THEN 510 
A*'CHRStl3J THEN X-0; 

PR INT#5 , COL : QN 56D5UB 330.3 
48 

GOTO 550 

PFINTRJ „ "ti*, X t Y: RETURN 
PRtNl *1 . "D” , X , Y : RETURN 
PR I NTCHRSC 19 1 ; PRI NT "ODDO : " 

: PRINT ''COLORE : " : PRtNT 
PRtNT' h UOUl * • FRI NT “D tSEGN 
A’ 1 : PRINT 
PRTNT H N ER0 M ; PRINT^B LO" : PR 
INT’-U EROE " 

PPINT' R OSSO " FRINÌ : PRIMI "E 
XIT" 

GET AS=1F ni* H “ THEN 39® 

IF AS-“t1 M THEN Z-l:PR2NTTS: 
FRINÌ TABtBJMl ; : GOTO 390 
IF THEN Z-5 FRINITI; 

PRIMI T AtìtS)D* r GOTO 390 
IF AS-‘N M THEN COL*0: FRINII 
S FRINÌ PR1NT T ABf 9)NI: GOTO 
390 

IF Af-'-B* THEN C0L-1 FRINII 
I PRINTtPPINT TaB<9>B*:GDI0 
390 

LF AI^U* THEN COL -3 : PRINTT 
S : PR I NT : PR I NT TABtSJUS : GOTO 
390 

IF AI-'R- THEN COL-3; PRINTT 
1; PRINT rPRlNT T ABf 9 )R1 ; GOTO 
39® 

IF THEN : PRINTT »IH»"P 

REI1ERE * PER LE OPZIONI " RE 
turn 

GOTO 390 


Commodore Computer Club - 105 




VENDITA PER CORRISPONDENZA 


GRUPPO CONTINUITÀ 

Fornito senza le 12 ballar.* a stilo ncarmabi Ir 
Cantante p| lunriananento del Voein computai 
Commodore C64 O VlC 2Q 'fi assenza di Sorten- 
te Culaia di tur»7N3n.Tmj=inlO 30 minui' Ricarica 
tramite a!iTndnltì!Ora Commodore 


KIT ALLINEAMENTO TESTINA 

Composto dai cacciavite, nastro dn contraine sitamente di ta 
tatara con monitor audig p^rmeite il perfetto allineamento bei 
regLStratoo digitali anche con n fl Stri rjt"Timertia1l 


VELOCIZZA TORE DI CARICAMENTO FLOPPY 

Cartndge con un insieme di uhlity res+denti su ros ijer velocizzale 
it dri-ve nel Commodore 54 

tNTERFACCIA RADIO 

Indispensabile per registrare con 
registratole Commodore modulo 
■. ■ Citi 1 programmi sp*a an per 

■Ék^X I ir-mOvitR-r dalle errullenii 

r 


ì 1 f '' '' 


CUFFIA PER 
COMMODO- 
RE C 64 

Loggerissjrma pen 

mette i’ ascolto per- 
sonale del compu- 
tar «vitando d; di- 
sirurtoere dorante i 
gtetìn. 


DUPLICATORE CASSETTE 

tnalsp&nsajbde ner realizzare delie copie con un 
t^galr a Lùre normale d 1 un nastro pretella 0 con 
tiTnca-merijD furbo 


COPIATORE PROGRAMMI 

Dispositivi.' hardware oer eltettaare copie di na 
sm preterii -j turbo utilizando due fegistraion 
Cofflm-ddGf* 4J compatitili' 


Bus qsjadnsiùt 
interfaccia cassette 
Duplicatore 
Copiatore programmi 
ini erticela radi* 

Kit ai line smanio teatina 
Aiimen-ratore per C&* e VlC 20 
Gruppo continui!* (fumile Mfxaa 
I* 1 2 batte ri# a siilo r Icar i&ab I II) 
Pacco baitene (l£ Siilo 1,2 Voli 
ricordabili 

Commutalore antenna 
ricomputar 
Tasto reset 
Intedaocia Centronics 
Espansione di memoria per C 16 
Velocizzatene di CBrtaamenlO 

fiep. 

Espansione di memoria per 
VlC 20 16K 
Modulatore Enecutiire 
Penna oilnca grafita 
Tavoletta grafita 
Mufuo'esB con filtra - 2 prese 
Cuffia per Commodori C 54 
Stabilizzalo re aiellronico di 
tensione SD*} W 
Gruppo di cimi' nuli È 60 W 
Gruppo di embnutlA ?00 V 
Inventar 12 Voli oc. 220 Volt ea 
100 Watt 

CauQ aiimen taziane 
Cavo drive 0 stampante 
Commodore 

Prafurue per Joystick - mt. 3 


An CD 100 

L. 

55 «10 

Prolunga per cavo TV - mt. 3 

Art. CD 215 

L- 

12.500 

Ari. CD 101 

L, 

30 IMO 

Cavo audio - mi fi 

Ari. CD 220 

L. 

15.500 

Art. CD 102 

L. 

30.000 

Adattatore j&iaiick (Alan e C04 ai 




Art, CD 1fl3 

t. 

30.000 

C 16) 

Art. CD 225 

L. 

10.500 

Art. CO 10* 

L 

30.000 

Adattatore registratore per C tfi 

Art CD 226 

L. 

10 500 

Art CO 105 

L, 

47.000 

Mascherina anlifiPassd t?' 

Aft. CD 300 

L. 

35,000 

Art. CD 106 

Li 

45.000 

Nastro inchiaslraio per Tal»y - 







me ao 

Ari CD CiO 

L- 

1 fi. 500 

Art- CD 107 

Li 

66-000 

Nw<tO inchiostrata per TaHy 







mi 180 

Ari. CD 61 1 

L- 

16.500 

Art CD 117 

L. 

52,000 

Nastrò iftthtìstralp per Tally 1000 







e Hprteyw#H 

Ari CD 612 

L. 

9,500 

Art. CD foe 

L* 

0.500 

Nastra ancfutìstratc per 




Art CD 105 

U 

5.500 

Commodore M RS S0 1 

Art CD 61 4 

L, 

13.000 

Art. CD 112 

Lr 

104.DOO 

Nastro inefiipslTaeù per 




Ari. CO 114 

L 

1 56.000 

Commodore WPS W2 

Art CD 8tfi 

L. 

10 000 




Nastro incblOStraSò p*r 




Art. CD 115 

L. 

49.000 

Commodore MP& 003 

Art CD 618 

L 

19,500 




Mauso per Commodore C 6* 

Art. CD 860 

L. 

240 000 

Aft CD tifi 

L. 

llj.000 

Pacca carta lefìurs (abilitata 




Art. CD 120 

I. 

72.000 

24" * 11" modulo da 5W tofll con 



Art. CD 121 

L. 

45.000 

bordi e straropc 

Art CD 6-30 

L- 

13.500 

Ari. CD 130 

L, 

236.000 

Supporto stampante porta carta in 



Art CD 140 

L- 

41.000 

plexiglas? "fumé'' - normale 

Ari. CD 660 

L- 

59.000 

Art. 00 150 

L 

19.000 

Supporto stampante porta caria te 






ptemglass "fumé - rinforzato 

Art CD fi70 

L. 

00.000 

Art CD T6D 

L, 

430.000 

Floppy disK 5 " «indole faccia 




Ari CD 170 

L. 

400 000 

doppia densità OOP ' 




Ari CD ISO 

L. 

302-000 

Conf IO ptìiZ' 

Art CO 700 

L.. 

4O.OO0 




Floppy oiek 5" singola faccia 




Art CO 150 

L. 

297.000 

doppia densità "CBS'' ■ 




Art CD 200 

L, 

4.30O 

conf. IO pezz» 

Art. CD 702 

L. 

36.000 




Floppy dLSk 5" ingoia taccia 




Art. CD 205 

L. 

3.500 

doppia densità "VEfiflATlfcT ■ 




Art CD 210 

L. 

25.000 

conf IO pezzi 

Ari CD 704 

L. 

42.000 


Floppy disk 5" singola taccus 
doppia derisili ''DYSAN' 
conf. if? pezzi 

Art 

CD 706 

L. 

$6 0OO 

Nastri mag melici C 10 digitali - 
Coni 1 0 pezzi 

Ari 

CD 712 

L. 

20.Q<» 

Nastri magnatici C 15 digdali 

Art 

CD 714 

L- 

21.000 

Ccc-rrtastiofa in ple^iglass per 

C64 - C lfi e VlC 20 

Art 

CO 75Q 

1. 

16.000 

Cdpnta&tiera In stoffa per 

Cfi4 - C16 e VlC 20 

Ari 

CD 760 

Li 

10.500 

Vaschette portalloppy in plexigiasn 
per 40 dischi con chiave Art 

CD 770 

L. 

30.000 

Vaschetta portalteppy m plexiplass 
per 90 dischi con chiave Art 

CD 760 

L. 

37.000 

Kit pulizia restine registrale#* 

Art 

CD 615 

L. 

13 500 

Kit pulizia disk drive 

Aft 

CO 620 

L- 

26,000 

Kit pulizia tastiera 

Aft 

CO 630 

L. 

16.500 

Foratore disk in bastie* [per untiz 
zare te seconda faccia bei dLscn ) 

Aft 

CD 640 

L. 

10.000 

Foratore disk rP meigllo ’1a»ui" 

Art 

CD 846 

L. 

14 Q00 

joystick Speci ravipeo li 

Art 

CD 650 

L. 

27.000 

Joystick a Migroswittfi 

Art 

CD 051 

1- 

52.5DO 

Joystick senza fili con unita 
neo venia (funjtona a batteria) 

Ari 

CD S52 

L, 

96.000 

Joystick par CommptlDre 16 
(originale) 

Ari. 

CD 130 

L. 

29500 


TUTTI I PREZZI SONO COMPRENSIVI DI IVA 
NON SI ACCETTANO ORQINf INFERIORI A L. 30.000 
CONTRIBUTO FISSO SPESE Di SPEDIZIONE L. 5000 

SI ACCETTANO ANCHE ORDINI TELEFONICI 
Al NUMERI 0522, '661647-661471 


BUONO DI ORDINAZIONE 


VOGLIATE INVIARMI IN CONTRASSEGNO 


MOm€ COGNOME 


fNOlftllZO 


CAp 


CITTA 


; L 


I 

1M. 

Art. 

L 

N 

Art 

L. 

N | 

N 

Art 

L 1 

PROVINCIA 

_J ' 

SPESE SPEDIZIONE 

L 5,000 ’ 

PAONE HO Al POSTINO 

r | 






recensioni 



Guida 

di riferimento 
alC/ 128 

Con l'uscita del C/128 sul mercato ita- 
liano era logico aspettarsi ì 'in t roda/ ione 
di libri sul l'argomento. E’ il caso di que- 
sta “Guida al C/128" della EVM. 

C ome Ormai tutti sapranno, il C/128 
dispone di tre modi di funzionamento 
(C/128, C/64 e CP/M) ma, di questi, il 
testo in oggetto tratta solo il primo. 

Tale scelta ci è sembrata valida, sia 
perchè permette di inserire più informa- 
zioni sullo stesso argomento* sia perche 
non costringe all'acquisto di un libro che, 
pur se completo risulterebbe voluminosi! 
c costoso in conseguenza. .♦ 

Alla fine del volume, comunque, vie- 
ne proposto l'acquisto della +Guida al 
C/64 ’ l t della stessa EVM, a condizioni 
vantaggiose, e nell'introduzione viene 
assicurata la prossima commercializza- 
zione di un libro sul CP/M . 

Esaminiamo ora i contenuti del volu- 
me che, divìso m sei capitoli, guida il 
lettore dalla programmazione più sem- 
plice alla complessa gestione del linguag- 
gio macchina (LM) e del sistema operati- 
vo (SO), 

il primo capitolo, oltre a cenni di in- 
formatica generale e ad una breve spie- 
gazione de! formato delle linee Basic, 
presenta un elenco completo delle istru- 
zioni del Basic 7,0 del C7128, Questa se- 
zione è molto ben curata: ogni informa- 
zione sui singoli comandi comprende la 
loro corretta sintassi, una dettagliata de- 
scrizione ed esempi di utilizzo. Per avere 
un'idea della completezza di questa se- 
zione basta pensare che le sono dedicate 
più di 160 pagine. 

Nel secondo capitolo riprende la pro- 


grammazione, con la descrizione dì ope- 
ratori, costanti, variabili ed espressioni 
del Basic. 

Il terzo ed il quarto capitolo sono dedi- 
cati alla programmazione della grafica e 
dei suoni. Oltre ad un elenco completo 
dei comandi relativi a tali sezioni, vengo- 
no visti i modi di programmazione della 
grafica e del suono, anche attraverso nu- 
merosi programmi dì esempio. 

Viene descritta, tra l'altro, la creazio- 
ne di semplici figure tramite istruzioni 
grafiche, ed è inclusa una completa se- 
zione riguardante gli sprites, con la de- 
scrizione dello aprite designer" del C / 
128. 

Nella programmazione del suono ven- 
gono esaminate le istruzioni dedicate, 
con tutti i parametri che è possibile intro- 
dure, quali forma d'onda. PADSft, i fil- 
tri, eccetera 

Il quinto capitolo parla delle periferi- 
che collegabili, con particolare attenzio- 
ne al registratore a cassette, dato che è 
questa la memoria di massa più diffusa 
tra gli utilizzatori di home computer. 

I file, la loro creazione e la relativa 
gestione, vengono studiati attraverso nu- 
merosi programmi di esempio. Un’altra 
sezione è dedicata al trattamento dei file 
su disco, alla directory c ad una lista di 
comandi del disco, completa di descri- 
zione ed esempi di utilizzo, 

II sesto capitolo è, forse, il più interes- 
sante dato che parla del LM e del SO, 

Qui vengono esaminati i concetti di 
memoria e di sistemi numerici 
( e sadecim ale /binario) e relativi esempi 
di conversione. 

Viene approfondita la conoscenza del 
microprocessore, studiandone le funzio- 
ni svolte, anche attraverso l’Assembler 
del noto 6502. 

In un’altra sezione è descritto il MO- 
NITOR LM incorporato e. addirittura, è 
presentata una lista di tutte le principali 


routine del SO de! nuovo computer. Di 
ogni routine viene data la completa de- 
scrizione dell'indirizzo di partenza, del 
modo di utilizzo e dei registri JN/OUT. 

Completano il volume le appendici, 
nelle quali* oltre ad una spiegazione mol- 
to dettagliata di tutti gli errori possibili, è 
presente anche la lista dei comandi del 
Basic 7,0* con abbreviazioni e codici to- 
lteli di ognuno di essi. 

Guida di riferimento al C/128 
Pagine 400 
Lire 28000 

Edizioni EVM Computer?: 


Il Sistei 


a Operativo 


del Cbm/64 


Su questo libro non c'è molto da dire 
dato che rappresenta il disassemblato 
commentato di tutto il SO e l'interprete 
Basic del C/64, completo di relativo cross 
reference, 

L'utilità dì questo libro è facilmente 
immaginabile* in quanto si potranno co- 
noscere tutti i segreti ed i trucchi usati dai 
progettisti della Commodore senza esse- 
re costretti a stampare chilometri di lista- 
to disassemblato con la propria stam- 
pante. 

Inoltre è utilissimo per costruire pro- 
grammi tipo Extended Basic, o altre cose 
del genere, utilizzando nel modo corret- 
to le numerose routine del SO senza es- 
sere costretti a riscriverle 

Pensate alla comodità di avere !6K di 
ROM sotto i propri occhi per trovare 
immediatamente il “pezzo” necessario 
senza effettuare una faticosa ricerca al- 
l'interno della memoria del computer, 

I commenti (in inglese, ma perfetta- 
mente comprensibili) aiutano enorme- 
mente la lettura del disasscmblato che. 


Commodore Computer Club - W7 





DISKETTE SCOTCH: ANNI MEMORIA IN AVANTI. 




















D ISK ETTE» 




1S2D RH 


Sur* Doublé Ucnsiv 
Rein-iorcwi Huh 








5V4 




La 3M. leader nella tecnologia dei 
supporti magnetici, sa quanto sono preziosi 
i dati che affidi alla memoria del tuo 
personal computer, Ecco perché ha messo 
a punto una nuova linea di diskette Scotch 
che sfruttano la sua ìneguagliata 
esperienza per offrirti un'affidabilità 
assoluta e una durata tale da consentire di 
leggere ogni pista milioni e milioni di volte. 

Inoltre queste diskette straordinarie 
concorrono ad assicurare una lunga vita 


Scotch è un marchio 
distribuito nei migliori negozi 
di audio, video e fotografia 
con una gamma completa 
per drive da 5V* " e da 3 Vi ", 


E" un prodotto Scotch 


al tuo drive, grazie a d un abrasivrtà 
nettamente al di 
sotto della media. 

Scegliendo Scotch, 
quindi, sei sicuro 
di scegliere bene. 

Scotch 

□ ISKETTES 


Laser-Control System 






RECENSIONI 


* 




Per aiutare a sfruttare appieno 
le possibilità def tuo computer 
e di queste nuove diskette, 
oggi Scotch ti regala 
i manuali della collana 
specializzata Systems. 

Infatti ogni confezione da 10 
diskette Scotch 1 S2D RH da 5 1 /* ” 
avrà abbinato uno dei volumi 
della collana Systems 
selezionati per te... 
e inviando tre prove d’acquisto 
avrai in omaggio 
anche il grande 
Dizionario dell' Informatica. 


comunque, richiede una buona cono- 
scenza dell’ Assembler del 6502/10, 

Completano il volume la descrizione 
delle pagine 0-4 ed una lunga Tabella con 
gli indirizzi di accesso alle principati rou- 
tine del SO non solo del C/64, ma anche 
del Vie 20 e dei computer della serie Cbm 
3000/4000. 

Il sistema operativo del Cbm C/64 
Pagine 270 

Edizioni EVM Computer; 

{ segreti del 1541 

Questo libro £ dedicato agli utilizzato- 
ri non principianti del drive dato che non 
tratta solo di gestione di ftlcc di comandi 
del disco, ma ò anche un valido aiuto per 
la programmazione avanzata dell'unità a 
dischi 1541 , 

Esaminiamolo in dettaglio, 

1] primo capitolo è un introduzione 
die sottolinea le differenze di trattamen- 
to di file su cassetta e su disco; spiega 
anche in modo chiaro i van tipi di file 
(sequenziali, relativi, eccetera). 

Il capitolo N.2 descrive i vari comandi 
del drive, quali formattazione, cancella- 
zionc, inizializzazione. ed altri. Ogni co- 
mando à descritto nei minimi dettagli, 
quali la funzione, l'effetto, p possibili er- 
rori* ed anche vari esempi pratici di 
utilizzo. 

Nel terzo capriolo si insegna a caricare 
programmi in LM. a trovare l'indirizzo di 
partenza dei medesimi, a registrarli sotto 
forma di file e a costruire caricatori 
Basic. 

Il capitolo quattro parla della gestione 
avanzata dei file sequenziali, con nume- 
rosi programmi di creazione, correzione, 
ricerca e ordinamento degli stessi. 

Nel quinto si entra nel vivo delfiargo- 
mento principale, dato che viene descrit- 
ta in dettaglio la struttura di un dischetto 
formattato con il 1541. Si prende in esa- 
me la struttura interna della BAM e della 
directory, gli identificatori, si vede la dif- 
ferenza (interna alla directory) dei file 
PRG.SEQ, USR, REI , DEL, si impara 
a conoscere il formato dei file su disco e 


tante altre cose utili alla buona program- 
mazione del 1541, Chiude il capitolo una 
completa descrizione sull’organizzazio- 
ne dei file relativi. 

Il capitolo sci è una continuazione del 
precedente: descrive come accedere di- 
rettamente ad un qualsiasi punto de! di- 
schetto ed esamina i buffer interni del 
1541, il loro utilizzo, come leggerli, sori- 
veri! e, insomma, gestirli. 

Il seguito del capitolo tratta gli altri 
comandi dei 1541, quali BJock-Read, 
Block -Write ed altri, con una particolare 
attenzione ai comandi Memory (M-R, 
M-W) ed USER II tutto £ contornato da 
numerosi programmi ed esempi di 
utilizzo. 

Il volume prosegue con la descrizione 
delle prime otto pagine di memoria (da 
S0000 a $07EF) c del disassemblato com- 
mentato dei 16K de) SO del disco. 

Grazie a manuali di questo tipo È pos- 
sibile scrivere programmi come Turbo- 
Disk, Fast-Copy, ed altri che richiedano 
una specifica conoscenza del SO del di- 
sco. Per il corretto utilizzo di questa par- 
te del libro è necessaria* ovviamente, 
una buona conoscenza dell’ Assembler 
del 6502. 

In appendice sono riportati utili pro- 
grammi per la gestione del disco, tra cui 
un disk-monitor interamente in LM e 
quindi velocissimo. Una dettagliata de- 
scrizione degli errori conclude gh argo- 
menti del libro. 

Insieme col manuale viene fornito lo 
schema elettrico del drive (utile in caso di 
guasti). Purtroppo tale schema non à 
molto chiaro, dato che tutte le sigle e i 
nomi sono stati scritti a mano ed in alcuni 
punii appaiono confusi e di difficile 
comprensione. 

Con una cedola presente nel libro, fa 
EVM pone condizioni vantaggiose per 
l'acquisto del disco contenente i pro- 
grammi riportati nel volume ed anche 
alcuni manuali tra t quali "Corso di As- 
sembler” e "Le periferiche Commo- 
dore". 

I segreti del 1541 
Pagine 290 

Edizioni EVM Computer* 

Commodore Computer Club - r09 




Vendo corso di basic “Conoscere il 
computer direttamente dal computer ' 
completo. 30 giochi. 15 programmi a lire 
50 000 (Alberto Vico , via Sant' Antonio 
da Padova 2 - 10121 Tonno Tei Oli- 
5389191 

Vendo per Vic2G espansione 3/8/16 K 
per G64 cedo interessante cartuccia 
(sepie (Gianni Cotrogni. via Strambino 
23 - 10010 Carrone (Torino) Tel. 0125- 
712311). 

Vendo modem C64 300/600/1200 
baud aut odiai compatibile agii standard 
europei ed americani più software su 
disco istruzioni, n tutto a lire 200 000 
(Stefano Malaisi, via Marsala 31 - 
40126 Bologna. Tel 051-235492). 

Vendo cartuccia Vie 20 e introduzione 
al basac l/ll sempre Vic20 (Luca Span- 
garo , via Ugurla 21 - 33100 Udine Tei 
0432-471707), 

Vendo 2 paddle, duplicatore di cassette 
RGP per Commodore 64 (Cristiano Gra- 
vandola, via Prof Oliva 16 - T2Q1 7 Sor- 
go S.D, Tal. 01 71-769659) 

Cerco routines per stampare copia vi- 
deo Hi-Res con la stampante Commo- 
dore MCS-801 .( Piero Nobile, via Martiri 
223 - 18038 Sanremo . Tel. 0184- 
74941) 

Vendo in blocco Commodore 64, drive 
1541 r datasele, stampante Mps 903 e 
circa 400 dischetti (Enzo lo vino, via dei 
taccaro 30 - 84012 Angri). 

Vendo C64 drive 1541- Mps 902, mo- 
nitor fosfori verdi inperfette condizioni 
più vari programmi, (Ruggero Rìgoldi . 
via Zanella 7 - 20052 Monza Tei 039 - 
836620). 


SCAMBIATEVI LE LISTE 


Vendo C 64 piu registratore e/o Vic20 
più registratore il primo a lire 400 OGO e il 
secondo a lire 150 000 (Adelchi Cre- 
span. vìa Toniolo 35 - 31015 Conegiia- 
no(Tv) Tei 0438-63318). 

Vendo Commodore Plus/4 più registra- 
tore, m omaggio giochi Utilities. (Paolo 
Borghesi , via Cresserì 25 25020 Pral- 
boino(Bs). Tei 030-954211). 

Cerco Modem 300 baud max lire 
200 000 (M assimilano Di Lorenzo, 
piazza 185mo Reg. Folgore 16 - 57100 
Livorno. Tei. 0586-580796) 

Vendo C64, registratore C2N 1 530, joy- 
stick The boss", tasto reset, circa I/O 
programmi (Francesco Ramato . via 
Roma 62 - 350 W Vigodarzore (Pd). Tei 
049-702651) 

VendoC64 più stampante grafica bidi- 
rezionale Mps 803 più programmi. (Pao- 
lo Cerabotini. wa Brioscht 22 - 20736 
Milano Tei. 02-8371 945). 

Vendo per C64 cartuccia nuova Turbo 
disk" con manuale in italiano piu libro 
Commodore 129 A lire 60 000 o seoa ra- 
tamente a lire 40,000 e 20.000 rispetti- 
vamente /Federico Solia, via G. Piazzi 
391D - 80137 Napoli. Tei. 081-442428) 


Vendo Atan VCS 2600 più joystick più 
paddles più cartucce, alimentatore a lire 
120 000. (Fabio Calabrese, via Spagna 
33 - 90146 Palermo Tel. 091-502509). 

Cerco utenti modem 300 baud (stan- 
dard europeo) per collegamenti (Mar- 
co Cortesi, via Libertà 13 - 47042 Cese- 
natico. Tel. 0547-80961). 

Compro hardware, computer a prezzi 
bassi Anche malridotti, (Christian Mau- 
ro , via Cassio P.se 4-2 - 43100 Parma , 
7e/. 05221-42771). 

Vendo ZX Spectrum, monitor tv e relati- 
vi cavetti, registratore Sharp Ce- 152, in- 
terfaccia joystick Ram turbo piu corso 
completo video base, diversi programmi 
e libri. Disponibile vendita singoli prezzi. 
(Giovanni Pilo , via Patabanda 23 - 
09123 Cagliari, Tei 070-656872). 

Cerco drive 1541 cerco stampante 
Commodore o affine. (Gaetano Santoro , 
via Eka Cn sa fu Ut 30 - 90128 Palermo. 
Tel. 091-427914 ) % 

Vendo Plotter Commodore 1520 a lire 
250 000, floppy disk alice 350 000. (Ro- 
sario Di Betta, Vta Parodi 42 - QQQ19 
Vibo Marina (Cz). Tei. 0963-240834). 

Cerco Turbo tape per Cl6. (Marco 
Cammarata , via Claudia Augusta 20 - 
39100 Bolzano ). 


SCAMBIATEVI LE LISTE 


Andrea Casale - Via delle Azalee 27 - 
00048 Nettuno - Tel 06/9804478 

FedeHco Fracassi - Lungarno Tripoli 
7/A - 56029 Santa croce S/A (Pi) - Tel. 
0571/34640 


Davide ValJoggìa - Via Giuseppe Ver- 
di 101 - 29021 Borgomanero (No) - Tel 
0322/82692 - 844822 

Marco Benvenuti - Via C. Mazza 43 - 
44100 Ferarra - Tel. 0532/901976 


110 - Commodore Computer Club 




Antonio Irpino - Vtsa Nazionale 1 14/B 
- 83013 Mercogliano (Av) - Tel 0825/ 
682258 

Andrea Trabacchi - Via Pordenone 22 
29100 Parma - Tei 0523/62446 

Mauro Serafini - Via Renzi 9 - 47037 
Rimini - Tel 0541/54652 

Guido Scalmato - Via Tnlussa 37 ■ 

0401 1 Aprilia - Tel. 06/923447 

Dario Giannessr - Via Cariote 3 - 
56 100 Pisa -Tei. 43817 

Sebastiano Stiraci - Via Pallanza tì - 
33100 Udine - Tel 0432/45274 

Fabio Olgiati - Via Puecher 6 - 20020 
Dairago - Tei, 0331/431494 

Antonino Baglione Via Castellana 
318-90135 Palermo 

Gianni Todero - Via Vecchia Trevigia- 
na 80 ■ 31015 Corteggiano - Tel. 0438/ 
60314 


Tamara Cacciamanv - Località II Pia- 
no - 58017 Pigliano (Gr) - Tel. 0564/ 
6 1 $622 

Angelo Orlandi - Via Delle Albizzie 4Q 
- 00942 Roma - Tel. 06/288368 

Leonardo Gambini - Via Pisana Tra- 
versa dei Bocci 36 55100 San Donato 
(Lu) - Tel 0583/510562 

Eugenio Baioni - Piazza Cavalieri Vit- 
torio Venete 4 - 04019 Terracini (Lt) - 
Tel 0773/724252 

B 

Massimiliano Camuffo - Via Bissa 44 
-30173 Mestre (Ve) -041/986707 

Paolo Nannotti - Via Grosseto 26 - 
53049 Tornita (Si) -Tel 0577/687032 

Marco Coccia - c/o Loredana Ammaz- 
zai orso - Via Sangro - 65010 S Santa 
Teresa di Spoitore (Pcì - Tel 085/ 
209630 


Mario Criscuolo - Piazza B Crivellai 
00159 Roma - Tel 06/4390265 


Massimo Musaceli! - Via Aminta 11 - 
44038 Ferrara - Tei.0532/464110 

Carlo Battardin - Via San Pietro 59 - 
35 1 00 Padova - tei 049/20272 

Rosario Bonavita - Via F della Moni- 
ca 60 - 84100 Salerno - Tel 089/ 
356832 

Carmelo Petragiia Via Max Casabun 
8-84100 Salerno - Tel 089/236873 

Bruno Mialieti - Via Cardinal Jacopo 
Monico 23 - 30174 Mestre (Vei - Tel 
041/914301 

Fiorando Costa - Pordenone Tei 
0434/652500 

Daniele Petracca - Via Carlo Placa- 
ne 26 - 04 100 Latina - TeL 0773/497071 



Per registrare, 
per conoscere tutto il mondo della videoregistrazione 

e le sue novità. Da oggi ogni mese in edicola. 


E’ nata 



Systems Editoriale 



Pubblichiamo r elenco ilei 
quaranta lettori che sorto risultati 
vincenti alla prima estrazione 
mensile del concorso 'Vince chi 
legge ' \ L ‘e sira zione è stata 
effettuata il 2H marzo I98b presso 
la sede della Systems , olia 
presenza dì un funzionario 
de II' Ammin istraz h me 
finanziaria. 

! primi cinque estratti vìncono 
una stampante Commodore a 
margherita: dal sesto al decimo 
estratto riceveranno una 
p rinter-plotter Com mi tdore ; 
dair undicesimo ai quarantesimo 
un libro a scelta del Ut biblioteca 
Systems oppure un abbonamento 
a una rivista Systems . Tutti ì 
coupons ricevuti concorreranno 
all' estrazione del premio finale, 
consistente in utui moto Cagiva 
Electra I25cc . 

Ed ecco i primi quaranta nomi 
(tra parentesi il numero d ordine 
del coupon di partecipazione}: 


1 Zizzi Giuseppi’ - Manina Franca I fA) - (598) 

2 Carulli Luigi - Monte S* Angelo (FG) - (125) 

3 Bel trami Massimo - Ravenna - (7701 

4 Siedile I -U igìno - Terragnolo fl'N ) - (663) 

5 Fumia Bruno - Torino - (257} 

6 Gale azzi Gabriele - Carpi (MO) - (4 Fri 

7 Marchesiesieh Giovanni - T rieslc - ( 199) 

8 Tomaselb Miguel» - Zoppè S. Vendami amo (TV) - t3KH i 

9 Cu rei Enrico Bari (550) 

10 Totano Atonia - Latina - (271} 

1 1 Prosperi Alessio Empoli ( F I ) - (454 ) 

12 Perrella Antonio - Casi Mare Stahia (NA) - (744) 

13 Gaudiosi Rodolfo ■ Capaccio Scalo (SA) - (73) 

14 Marciano Antonio - Piano di Sorrento (NA) - (395 ) 

15 I udani Vincenzo - Benevento (NA) - (166 1 

1 6 Bel lini Francesco - Firenze - ( Ih 1 ) 

17 Sirmicci Guido - Cesena (FO) - (578) 

18 Carollo Paolo - F.ste (PD) - (590) 

19 Losi Umberto - Cuglieri (OR) (767) 

18 Fa rè Silvia - Milano - (707) 

21 Sorrentino Giuseppe - Salerno - (343) 

22 Stompanato Gaetano - Accora (NA)- (479 ) 

23 Abenavoli Renato ■ Roma - (688) 

24 Colombo Gilberto - Cosiamagnaga (CO) - (626) 

25 Silvestri Raffaele - Napoli - (313) 

26 Leto Giuseppe -Torino - (558) 

27 Del Grande Mirko - Pesaro - (559) 

28 Tuinmifiia Stefano - Reggio C. -(506) 

29 Ferruzzi Claudio - forino - (57) 

30 Conte Antonio - Andria ( BA ) ~ (30) 

31 Tugnoli Francesco - Bologna - (376) 

32 Pacchiarmi Loris - Portofermrio (LI) - (Ut)) 

33 Gentili Liberato - Ascoli Piceno - (786) 

34 Bozzoli Dante - Marni (TR ) (564) 

35 Lucchini Giuseppe - Lido di Roma ( 180) 

36 TTofa Biagio - S. Giorgio del Sanniti (BN ) - ( Il 1} 

37 Russo Gaetano - Quarto (NA) - (4U4 ) 

38 Merolla Paolo - Napoli - ( 108} 

39 Maxia Renalo - C agliaci - (287) 

40 Capo Stefano - Roma (54) 


&3U&«imÌÈ=z 




INVIARE TUTTA LA PAGINA ANCHE SE SI UTILIZZA UNA SOLA SCHEDA 


X 


0 

E 

o 

£ 

O) 

o 

u 


0 

E 

o 


c 

Q 


o. 

< 

o 


tl 


> 


Ila 

0 


O 

c 

o 

jji 

0 


Registrate il mio abbonamento annuale a Commodore Computer Club. 

Ho versato oggi stesso il canone di L 35.000 a mezzo c/c postale n 37952207 intestato 
a: 

Systems Editoriale ■ VJe Famagosta, 75 - 20142 Milano 

I Ho inviato oggi stesso assegno bancario n ..... 

per t ! importo di L. 35 000 intestato a Systems Editoriale 
Sì prega di scrivere il proprio nome o i indirizzo completo in modo chiaro e leggibile Inviare 
la fotocopia del bollettino di c/c postale 



Considerando che i numeri 1 , 2 e 7 sono esauriti vogliate inviarmi i numeri arretrati 

al prezzo di L 5 000 cadauno per richieste fino a 4 numeri o di L 4 000 cadauno per 

richieste oltre i 4 numeri a* retrati. e perciò per un totale di L Sono a conoscenza che 

i fascroli suddetti non saranno inviati in contrassegno e, pertanto, ho provveduto oggi stesso 

a versare il canone dì L ... a mezzo c/c postale n. 37952207 intestato a 

Systems Editoriale - V ie Famagosta 75 *20142 Milano 



a STATISTICA 

■ 

■ Non posseggo un computer 

m Posseggo un C64 

» Posseggo un V1C 20 

■ Posseggo un Commodore Plus 14 

■ Posseggo un Commodore Plus 1 6 

■ Posseggo un registratore dedicato 

* Posseggo un drive 1541 

* Posseggo una stampante 

* Posseggo un mon itor 


» - 




“ *4* 


M ... 4 ...» 4 . - 4 I » I . i I 1 i IT i II r I I 


si 

□ . 

, no J 

si 

□ . 

. no ZI 

si 

□ . 

. no □ 

si 

□ ; 

no Z 

si 


. no t j 

Sì 

□ . 

, no □ 

SI 

□ 

. no i 

si 

r-1 

. no □ 



COLLABORAZIONE 


A titolo di prova vi invio un articolo e la cassetta ... disco — 

col programma che intendo proporre per fa pubblicazione di cui garantisco ( originalità. 





DOMANO A/H IS POSTA 


I r ■ a ■ l i 


RICHIESTA ARGOMENTI 


? 


Mi tare o he piacer e che Commodore Computar Club parlasse più spesso dei seguenti 

argomenti 


V 


2 / 


IMMlil r > t 9 I »'T » ■ T M f • 1 * - 1 


3/„. 



GIUDIZIO SUI PROGRAMMI DI QUESTO NUMERO 


Ho assegnato un volo da 0 a 1 0 ai programmi die indico di seguito; 




A/ 


8/ 


C/ . 


i-4 *■«>»•+•* 


... Voto 


Voto 


Voto 











■ i ■ ■ ■ là ■ r t (•*■*« n-t*rÉ »-r a + 4 I « 4 ! - M 



PICCOLI ANNUNCI 




> * ■* ■■■**• 



CERCO/OFFRO CONSULENZA 




■aviari i » iliiiit 


- *4- • tf 



INVIARE IN BUSTA 
CHIUSA E AFFRANCANDO 
SECONDO LE TARIFFE VIGENTI A 

COMMODORE COMPUTER CLUB 

V.le Famagosta, 75 
20142 Milano 


■ 


O 

s 
— ■ 
o 


»■ * 

tu 0 


2 

o 


O 

> 

T3 


o 


O 

<S 

3 

O 

3 

o 


X 


INVIARE TUTTA LA PAGINA ANCHE SÉ SI UTILIZZA UNA SOLA SCHEDA 











II lettore di VR 
Videoreglstràre è giovane, 
dinamico» creativo. DI cultura 
e reddito superiore alia 
media, possiede spesso più 
di un videoregistratore, oltre 
all'Impianto hl-fi e a) 
computer; nef tempo libero, 
non rinuncia a viaggi in Italia 
e all’estero, e a cinema, teatro 
e spettacoli sportivi in 
genere. Usa il 
videoregistratore non solo 
per f programmi tv o 
premei^!, ma anche per 
riprendere I momenti felici in 
famiglia, per creare una 
videoteca personale. 
É tu, che lettore sei? 

t 













« - 


L 


PRESENTA